作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 asp.net 页面,它将文件的内容发送到客户端,因此浏览器显示“另存为”对话框来下载文件。此页面显示在弹出窗口中,当用户单击“保存”按钮时,它会自动关闭并开始下载。
在 Windows Server 2003 上,它工作正常。在 vista 上使用其他浏览器也可以正常工作。但是当我尝试使用 IE7 和 Vista 时,弹出窗口打开,大约一秒钟后关闭,而不显示文件下载对话框。我该如何解决这个问题?
我用于生成响应的代码是:
FileStream fileStream = new FileStream(filePath, FileMode.Open);
int fileSize = (int)fileStream.Length;
byte[] buffer = new byte[fileSize];
fileStream.Read(buffer, 0, (int)fileSize);
fileStream.Close();
Response.Clear();
Response.Buffer = true;
Response.BufferOutput = true;
Response.ContentType = "application / octet - stream";
Response.AddHeader("Content-Length", buffer.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
Response.AddHeader("Extension", Path.GetExtension(filename));
Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254");
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
我用这个 javascript 打开弹出窗口:
window.open ('Download.aspx?filename=somefile.ext','downloadWindow','location=0,status=0,scrollbars=0,width=1,height=1');
编辑:我更正了空格,但不幸的是它们不是问题。
编辑2::似乎这个问题与Vista无关,而只与IE有关。我还发现,当项目在本地开发服务器上运行时,它工作正常,但当连接到发布服务器时,它无法下载文件。
最佳答案
尝试删除 ContentType
中的空格。标准是application/octet-stream
。
关于asp.net - 文件下载不适用于 IE7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208993/
我是一名优秀的程序员,十分优秀!