2013-05-21 80 views
0

当我上传的docx,使用AWS .NET SDK文件XLSX或PPTX到Amazon S3损坏的MS Office文件是越来越细上传,我可以直接从S3查看该文件没有任何问题。但是当我使用C#在ASP.net中下载文件时,我在打开文件时收到警告消息(请参见下文):亚马逊S3 - 下载

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

我在做什么错?

请帮忙...

回答

0

需要更多信息来解决这个问题。你提供的代码片段看起来不错。问题看起来是在你的代码中的其他地方......例如,你在“内容”中加载了什么?

另外,如果你尝试过载和下载一个简单的文本文件,看看什么样的数据被追加它将帮助。

+0

“内容”是什么一个byte [],并且只能用于.DOCX,.XLSX和.pptx格式问题的情况下,其他文件似乎是罚款。 – user972255

0

如果Content是从MemoryStream创建byte[],确保你打电话.ToArray()而不是.GetBuffer()得到它。如果你使用.GetBuffer(),你将有可能获得上月底,该办公室的文件格式可能不喜欢额外的字节。你有试过你的其他文件类型可能会更宽容,他们不就完了期待其它数据。

+0

是的,我只使用.ToArray()。 – user972255