在从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中运行良好。
答案 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个字节。