asp.net 下载 有些资源如avi在ie中直接打开

本文介绍ASP.NET中通过不同方法实现文件下载的过程,包括使用TransmitFile、WriteFile、分块下载及流方式下载的具体实现。此外,还探讨了如何设置正确的MIME类型以确保文件能正确地触发浏览器的下载行为而非直接打开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值