无法找到文件在Internet Explorer中下载文件时出错

时间:2014-11-07 09:33:39

标签: asp.net excel internet-explorer

在从ASP.NET Web应用程序提供excel文档时,尝试在Internet Explorer中使用“打开”选项时遇到问题。

Response.AddHeader("content-disposition", "attachment;filename=" + filename.Replace(",", "") + ".xls");
Response.Charset = String.Empty;
Response.ContentType = "application/vnd.xls";

using (StringWriter sw = new StringWriter())
using(HtmlTextWriter hw = new HtmlTextWriter(sw))
{
    gridView.RenderControl(hw);
    Response.Write(sw.ToString());
}

Response.End();

我没有编写代码,但我注意到的是,如果文件名长度是< = 177那么它就可以了。任何超过> = 118我收到的文件都找不到错误。我已经检查过第118个字符是0,所以似乎与此无关。

任何想法可能会导致这种情况,因为它似乎在Chrome和Firefox中运行良好。

1 个答案:

答案 0 :(得分:1)

我认为这就是原因:http://support.softartisans.com/kbview_892.aspx

  

虽然NTFS或FAT32文件系统最多可以支持文件名   如果不是255个字符,则无法使用文件输入来上传文件   名字很长。这是由于IE插入的方式   选择的文件到表单字段中   当您浏览到文件并使用文件输入选择它时, IE   插入完整的文件路径。 IE也限制你为255个字符,但是   根据该限制计算文件路径。这意味着,如果你有一个   路径长度为55个字符,文件的最大长度   您可以选择上传的名称为200个字符。

这也许会有所帮助: https://stackoverflow.com/a/153400/20126

  

但是,仍有一个限制(显然只有IE)   文件名的字节长度(我假设是一个错误)。所以即使文件   name仅由单字节字符组成,即文件的开头   名称被截断。限制大约是160个字节。