0

我正在尝试下载从服务器上某个位置上传的文件。这是我用来下载文件的代码

Response.ContentType = "image/jpg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
Response.TransmitFile(Server.MapPath(filePath));
Response.End();

在这里,我有各种扩展名的文件,即文件可以是我当前设置为.jpg/pdf/doc/txt的文件。ContentTypeimage/jpg

当我尝试下载一个文件时,它得到了正确的保存,并且可以从保存它的物理位置打开,但是打开不起作用并且文件没有下载,我得到了如图所示的错误。

在此处输入图像描述 在此处输入图像描述

即使我尝试打开一个类型的文件,这个问题也是如此,jpg所以我认为这与它无关ContentType

请帮忙。

4

2 回答 2

0

最常见的这个问题发生在禁用缓存的 Internet Explorer 上(文件被下载到临时文件夹,然后在单击打开之前被删除)。请参阅IEInternals

如何确定:启动Fiddler并在文件下载响应中查找缓存标头。

如果响应包含Cache-Control: no-cache标题,您将不得不修改您的代码以覆盖它Cache-Control: private或更改禁用它的代码以排除生成文件的处理程序/页面/操作(有时 asp.net 有覆盖Cache-Control标题的问题,因此我通常使用第二种方法)。

于 2012-11-23T10:38:25.213 回答
0

我指定Content-Typeoctet-stream并且它有效!

于 2012-11-24T06:33:44.567 回答