Lưu ý quan trọng: Câu trả lời này được viết vào năm 2011, một vài năm trước khi masterwok's answer được viết. Trong khi câu trả lời của tôi vẫn là chấp nhận được, câu trả lời của masterwok là tốt hơn và ngắn gọn hơn. Thay vào đó hãy sử dụng và upvote câu trả lời đó. Mọi thứ dưới đây là dành cho hậu thế.
Tôi chỉ sử dụng phần mở rộng tệp thay vì cố gắng làm điều gì đó thông minh mà cuối cùng có thể quay trở lại để cắn bạn trong mông. :)
Phần mở rộng tệp không cần phải được đăng ký trên hệ thống của bạn (mặc dù tôi không biết chính xác bạn đang làm gì với tệp ...). Bạn có thể sử dụng một cái gì đó như một bảng enum hoặc db có chứa thông tin về các phần mở rộng chấp nhận được nếu bạn muốn lọc ra các tập tin.
Vui lòng xem @Tolgahan's idea về điều này. Tôi tạo ra một C# enum dưới đây dựa trên điều này mà nên cung cấp cho người dân với một điểm khởi đầu nếu họ muốn tạo ra một phương pháp tiếp cận db/enum/xml dựa trên này.
Public enum MimeTypes
{
[Description("application/postscript")]
ai,
[Description("audio/x-aiff")]
aif,
[Description("audio/x-aiff")]
aifc,
[Description("audio/x-aiff")]
aiff,
[Description("text/plain")]
asc,
[Description("application/atom+xml")]
atom,
[Description("audio/basic")]
au,
[Description("video/x-msvideo")]
avi,
[Description("application/x-bcpio")]
bcpio,
[Description("application/octet-stream")]
bin,
[Description("image/bmp")]
bmp,
[Description("application/x-netcdf")]
cdf,
[Description("image/cgm")]
cgm,
[Description("application/octet-stream")]
class,
[Description("application/x-cpio")]
cpio,
[Description("application/mac-compactpro")]
cpt,
[Description("application/x-csh")]
csh,
[Description("text/css")]
css,
[Description("application/x-director")]
dcr,
[Description("video/x-dv")]
dif,
[Description("application/x-director")]
dir,
[Description("image/vnd.djvu")]
djv,
[Description("image/vnd.djvu")]
djvu,
[Description("application/octet-stream")]
dll,
[Description("application/octet-stream")]
dmg,
[Description("application/octet-stream")]
dms,
[Description("application/msword")]
doc,
[Description("application/xml-dtd")]
dtd,
[Description("video/x-dv")]
dv,
[Description("application/x-dvi")]
dvi,
[Description("application/x-director")]
dxr,
[Description("application/postscript")]
eps,
[Description("text/x-setext")]
etx,
[Description("application/octet-stream")]
exe,
[Description("application/andrew-inset")]
ez,
[Description("image/gif")]
gif,
[Description("application/srgs")]
gram,
[Description("application/srgs+xml")]
grxml,
[Description("application/x-gtar")]
gtar,
[Description("application/x-hdf")]
hdf,
[Description("application/mac-binhex40")]
hqx,
[Description("text/html")]
htm,
[Description("text/html")]
html,
[Description("x-conference/x-cooltalk")]
ice,
[Description("image/x-icon")]
ico,
[Description("text/calendar")]
ics,
[Description("image/ief")]
ief,
[Description("text/calendar")]
ifb,
[Description("model/iges")]
iges,
[Description("model/iges")]
igs,
[Description("application/x-java-jnlp-file")]
jnlp,
[Description("image/jp2")]
jp2,
[Description("image/jpeg")]
jpe,
[Description("image/jpeg")]
jpeg,
[Description("image/jpeg")]
jpg,
[Description("application/x-javascript")]
js,
[Description("audio/midi")]
kar,
[Description("application/x-latex")]
latex,
[Description("application/octet-stream")]
lha,
[Description("application/octet-stream")]
lzh,
[Description("audio/x-mpegurl")]
m3u,
[Description("audio/mp4a-latm")]
m4a,
[Description("audio/mp4a-latm")]
m4b,
[Description("audio/mp4a-latm")]
m4p,
[Description("video/vnd.mpegurl")]
m4u,
[Description("video/x-m4v")]
m4v,
[Description("image/x-macpaint")]
mac,
[Description("application/x-troff-man")]
man,
[Description("application/mathml+xml")]
mathml,
[Description("application/x-troff-me")]
me,
[Description("model/mesh")]
mesh,
[Description("audio/midi")]
mid,
[Description("audio/midi")]
midi,
[Description("application/vnd.mif")]
mif,
[Description("video/quicktime")]
mov,
[Description("video/x-sgi-movie")]
movie,
[Description("audio/mpeg")]
mp2,
[Description("audio/mpeg")]
mp3,
[Description("video/mp4")]
mp4,
[Description("video/mpeg")]
mpe,
[Description("video/mpeg")]
mpeg,
[Description("video/mpeg")]
mpg,
[Description("audio/mpeg")]
mpga,
[Description("application/x-troff-ms")]
ms,
[Description("model/mesh")]
msh,
[Description("video/vnd.mpegurl")]
mxu,
[Description("application/x-netcdf")]
nc,
[Description("application/oda")]
oda,
[Description("application/ogg")]
ogg,
[Description("image/x-portable-bitmap")]
pbm,
[Description("image/pict")]
pct,
[Description("chemical/x-pdb")]
pdb,
[Description("application/pdf")]
pdf,
[Description("image/x-portable-graymap")]
pgm,
[Description("application/x-chess-pgn")]
pgn,
[Description("image/pict")]
pic,
[Description("image/pict")]
pict,
[Description("image/png")]
png,
[Description("image/x-portable-anymap")]
pnm,
[Description("image/x-macpaint")]
pnt,
[Description("image/x-macpaint")]
pntg,
[Description("image/x-portable-pixmap")]
ppm,
[Description("application/vnd.ms-powerpoint")]
ppt,
[Description("application/postscript")]
ps,
[Description("video/quicktime")]
qt,
[Description("image/x-quicktime")]
qti,
[Description("image/x-quicktime")]
qtif,
[Description("audio/x-pn-realaudio")]
ra,
[Description("audio/x-pn-realaudio")]
ram,
[Description("image/x-cmu-raster")]
ras,
[Description("application/rdf+xml")]
rdf,
[Description("image/x-rgb")]
rgb,
[Description("application/vnd.rn-realmedia")]
rm,
[Description("application/x-troff")]
roff,
[Description("text/rtf")]
rtf,
[Description("text/richtext")]
rtx,
[Description("text/sgml")]
sgm,
[Description("text/sgml")]
sgml,
[Description("application/x-sh")]
sh,
[Description("application/x-shar")]
shar,
[Description("model/mesh")]
silo,
[Description("application/x-stuffit")]
sit,
[Description("application/x-koan")]
skd,
[Description("application/x-koan")]
skm,
[Description("application/x-koan")]
skp,
[Description("application/x-koan")]
skt,
[Description("application/smil")]
smi,
[Description("application/smil")]
smil,
[Description("audio/basic")]
snd,
[Description("application/octet-stream")]
so,
[Description("application/x-futuresplash")]
spl,
[Description("application/x-wais-source")]
src,
[Description("application/x-sv4cpio")]
sv4cpio,
[Description("application/x-sv4crc")]
sv4crc,
[Description("image/svg+xml")]
svg,
[Description("application/x-shockwave-flash")]
swf,
[Description("application/x-troff")]
t,
[Description("application/x-tar")]
tar,
[Description("application/x-tcl")]
tcl,
[Description("application/x-tex")]
tex,
[Description("application/x-texinfo")]
texi,
[Description("application/x-texinfo")]
texinfo,
[Description("image/tiff")]
tif,
[Description("image/tiff")]
tiff,
[Description("application/x-troff")]
tr,
[Description("text/tab-separated-values")]
tsv,
[Description("text/plain")]
txt,
[Description("application/x-ustar")]
ustar,
[Description("application/x-cdlink")]
vcd,
[Description("model/vrml")]
vrml,
[Description("application/voicexml+xml")]
vxml,
[Description("audio/x-wav")]
wav,
[Description("image/vnd.wap.wbmp")]
wbmp,
[Description("application/vnd.wap.wbxml")]
wbmxl,
[Description("text/vnd.wap.wml")]
wml,
[Description("application/vnd.wap.wmlc")]
wmlc,
[Description("text/vnd.wap.wmlscript")]
wmls,
[Description("application/vnd.wap.wmlscriptc")]
wmlsc,
[Description("model/vrml")]
wrl,
[Description("image/x-xbitmap")]
xbm,
[Description("application/xhtml+xml")]
xht,
[Description("application/xhtml+xml")]
xhtml,
[Description("application/vnd.ms-excel")]
xls,
[Description("application/xml")]
xml,
[Description("image/x-xpixmap")]
xpm,
[Description("application/xml")]
xsl,
[Description("application/xslt+xml")]
xslt,
[Description("application/vnd.mozilla.xul+xml")]
xul,
[Description("image/x-xwindowdump")]
xwd,
[Description("chemical/x-xyz")]
xyz,
[Description("application/zip")]
zip
}
Tôi đang cố gắng trả về một tập tin từ bộ điều khiển. Tôi đang sử dụng chính xác [phương pháp này] (http://msdn.microsoft.com/it-it/library/dd492492.aspx) để sử dụng kiểu nội dung chính xác/loại mime làm cho ứng dụng khách hoạt động chính xác (như hiển thị pdf, mở ms word, v.v.) – Lorenzo
Sau đó, chắc chắn bạn chỉ cần đảm bảo rằng bạn chuyển đúng tiêu đề 'content-disposition' khi gửi tệp cho máy khách. –
Chỉ cần sử dụng phần mở rộng tập tin không phải là đặc biệt an toàn nếu bạn lo lắng về bảo mật. – bplus