我正在尝试下载从服务器上的某个位置上传的文件。这是我正在使用的代码 下载文件
Response.ContentType = "image/jpg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
Response.TransmitFile(Server.MapPath(filePath));
Response.End();
这里我有各种扩展名的文件,即文件可以是 jpg / pdf / doc / txt 我目前正在设置ContentType
到image/jpg
。
当我尝试下载文件而不是正确保存文件时,可以从保存它的物理位置打开但是打开不起作用且文件未下载我得到错误,如图所示。
即使我尝试打开jpg
类型的文件,我也不会认为这与ContentType
请帮助。
答案 0 :(得分:0)
最常见的问题是在具有禁用缓存的Internet Explorer上发生此问题(文件将下载到临时文件夹,然后在单击“打开”之前删除)。请参阅IEInternals。
如何确定:启动Fiddler并在文件下载响应中查找缓存标头。
如果响应包含Cache-Control: no-cache
标头,则必须修改代码以使用Cache-Control: private
覆盖它,或更改禁用它的代码以排除生成此代码的处理程序/页面/操作文件(有时asp.net有覆盖Cache-Control
标题的问题,因此我通常使用第二种方法。)
答案 1 :(得分:0)
我将Content-Type
指定为octet-stream
并且有效!