Response.BinaryWrite两次调用ASPX页面

时间:2012-08-07 20:28:44

标签: c# asp.net

我正在尝试使用BinaryWriter在浏览器中打开文件。这会导致对话框窗口打开并提示用户保存或打开文件。那种行为很好;但是,如果我选择open,则会再次调用aspx页面,经过漫长的等待后,文件最终会打开。

我设置了ContentType

Response.BinaryWrite(binary);
Response.End();
Repsonse.Close();

只有excel和word文件才会出现此问题。

浏览器IE8

1 个答案:

答案 0 :(得分:1)

做同样的替代方式。你可以看一下:

FileInfo fileInfo = new FileInfo(yourFilePath);    
context.Response.Clear();   
context.Response.ContentType = contentType;   //Set the contentType
context.Response.AddHeader("content-disposition", "attachment; filename=" + Path.GetFilename(yourFilePath));   
context.Response.AddHeader("Content-Length", fileInfo.Length.ToString());       
context.Response.TransmitFile(yourFilePath); 

希望这会有所帮助