C# Amazon S3-MS office文件在下载时损坏

C# Amazon S3-MS office文件在下载时损坏,c#,asp.net,amazon-s3,C#,Asp.net,Amazon S3,当我使用aws.NETSDK将docx、xlsx或pptx上传到AmazonS3时,文件上传得很好,我可以直接从S3查看文件,没有任何问题。但是,当我使用C#在ASP.net中下载该文件时,打开该文件时会收到一条警告消息(见下文): “Excel在test.xlsx中发现无法读取的内容。是否要恢复此工作簿的内容?”如果单击“是”,则可以查看文档中的所有内容 同样,我也收到了一条.docx文件的警告消息 这是我使用的C代码: Response.Clear(); Response.ContentTy

当我使用aws.NETSDK将docx、xlsx或pptx上传到AmazonS3时,文件上传得很好,我可以直接从S3查看文件,没有任何问题。但是,当我使用C#在ASP.net中下载该文件时,打开该文件时会收到一条警告消息(见下文):

“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应用程序

我做错了什么


请帮助……

需要更多信息来解决这个问题。您提供的代码段看起来正常。问题似乎在代码的其他地方。。。例如,您在“内容”中加载的内容是什么


此外,如果您尝试上载和下载一个简单的文本文件,以查看附加了什么类型的数据,也会有所帮助。

如果
内容
是从
内存流
创建的
字节[]
,请确保您正在呼叫,而不是在获取它。如果使用
.GetBuffer()
,则可能会在结尾处获得额外的字节,而office文件格式可能不喜欢这些字节。您尝试过的其他文件类型可能更能容忍他们最终不期望的额外数据。

内容不是一个字节[],问题只发生在.docx、.xlsx和.pptx文件中,其他文件似乎也可以。是的,我只使用.ToArray()。