asp.net response.ContentType 下载文件的四种方法
1.目的:实现avi,MP3等文件点击链接的时候,能够在打开的时候弹出是否保存或者直接打开的框,避免直接在ie中乱码打开。
2.本人实现的方式是使用Response.TransmitFile(tempdir); 的方法,此方法需要指定 Response.ContentType,否则ie会直接打开部分类型的文件,如果您单击这些链接,就会发现浏览器对每个文件类型的处理方式都不同,具体取决于注册了哪些助手应用程序来打开每个文件类型。默认情况下,如果您单击 .asp 页面、.html 页面、.jpg、.gif 或 .txt,它会在浏览器其本身中打开,并且不出现“另存为”对话框。这是因为这些文件的扩展名都属于已知的 MIME 类型。因此,要么浏览器本身知道如何呈现文件,要么操作系统具有一个将被浏览器使用的助手应用程序。Webcasts(.wmv、.avi 等等)、PodCasts(.mp3 或 .wma)、PowerPoint® 文件以及所有的 Microsoft® Office 文档都属于已知的 MIME 类型,如果您不想在默认情况下联机打开这些文件,就产生了一个难题。
刚开始的时候获取Response.ContentType的代码,比较不灵巧:
最后找到合适的方法:
最终代码:
参考:http://www.microsoft.com/china/msdn/library/webservices/asp.net/WebDownloads.mspx?mfr=true
http://www.debugging.com/bug/13927