Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从服务器下载文件时出现问题(保存工作正常,但打开不会打开文件)_C#_Asp.net_Download - Fatal编程技术网

C# 从服务器下载文件时出现问题(保存工作正常,但打开不会打开文件)

C# 从服务器下载文件时出现问题(保存工作正常,但打开不会打开文件),c#,asp.net,download,C#,Asp.net,Download,我正在尝试下载从服务器上某个位置上载的文件。这是我正在使用的代码 下载文件 Response.ContentType = "image/jpg"; Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\""); Response.TransmitFile(Server.MapPath(filePath)); Response.End(); 这里我有各种扩展名的文件,即文件可以是jpg/

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

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


请帮忙

此问题通常发生在禁用缓存的Internet Explorer上(文件下载到临时文件夹,然后在单击“打开”之前删除)。看

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


如果响应包含
Cache Control:no Cache
标题,则必须修改代码以使用
Cache Control:private
覆盖它,或者更改禁用代码的位置以排除生成文件的处理程序/页面/操作(有时asp.net在重写
缓存控制
头时遇到问题,因此我通常使用第二种方法)。

我将
内容类型
指定为
八位字节流
,它起作用了!

您应该尝试删除响应。end();另外,您是否有某种无缓存指令?它可能会使IE出现问题。@jbl是的,问题在于IE。请帮助。您所说的
无缓存指令是什么意思?我不明白。已删除
Response.End();
但这没有帮助。您应该检查您是否没有类似Response.CacheControl=“无缓存”的行;或Response.AddHeader(“Pragma”,“no cache”);此外,在内容配置中添加大小将有助于…@jbl我没有任何内容,因为
无缓存
您不应该设置不正确的内容类型-请指定一些通用的内容(如octec流)或跳过它。