通过IIS发布后,Response.TransmitFile不起作用

时间:2014-05-10 00:05:21

标签: asp.net .net

以下代码下载Excel文件。它在调试和发布模式下都可以在Visual Studio中运行,但在我通过IIS发布后它不起作用。它下载文件但大小只有1 KB(通常为230 KB)

string fileName = "HexSwap_PreCheck.xlsx";
System.Web.HttpResponse Response1 = System.Web.HttpContext.Current.Response;
Response1.Clear();
Response1.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response1.AddHeader("Content-Length", fileName.Length.ToString());
Response1.ContentType = "text/x-msexcel";
Response1.TransmitFile("C:\\ltesitecheck\\5-9-2014-4-08-12-PM-97895\\HexSwap_PreCheck.xlsx");
Response1.End();

2 个答案:

答案 0 :(得分:0)

由于某种原因,它没有获取文件大小。所以我删除了这一行并且它有效!

Response1.AddHeader("Content-Length", fileName.Length.ToString());

答案 1 :(得分:0)

使用FileInfo文件的长度:

Response1.AddHeader("Content-Length", new FileInfo(fileName).Length.ToString());