2013-05-21 241 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