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流)或跳过它。