当我使用aws将docx、xlsx或pptx上传到S3时,文件被上传得很好,并且可以直接从S3查看文件,而不会出现任何问题。但是,当我在ASP.net中使用C#下载该文件时,在打开该文件时会收到警告消息(请参见下面):
"Excel在test.xlsx中找到了不可读的内容。要恢复此工作簿的内容吗?“如果我点击“是”,我就可以看到文档中的所有内容。
类似地,我也收到了.docx文件的警告消息。
这是我使用的C#代码:
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.OutputStream.Write(Content, 0, Content.Length);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();更新:当我在windows应用程序中下载文件时,它运行良好,问题仅限于web应用程序。
我做错了什么?
请帮帮我..。
发布于 2013-05-21 23:49:41
需要更多的信息来解决这个问题。您提供的代码片段看起来不错。问题就在你代码的其他地方.例如,在“内容”中加载什么?
此外,如果您尝试上传和下载一个简单的文本文件,查看所附加的数据类型也会有所帮助。
发布于 2013-05-22 01:12:51
如果Content是从MemoryStream创建的byte[],那么一定要调用.ToArray()而不是.GetBuffer()来获取它。如果使用.GetBuffer(),可能会得到额外的字节,而office文件格式可能不喜欢这些字节。您尝试过的其他文件类型可能会更容忍他们最终没有预料到的额外数据。
https://stackoverflow.com/questions/16681220
复制相似问题