我已經寫了一些代碼,下載某個文件到用戶的計算機,這是一個MS Excel .xlsx文件。問題是,當用戶從我的web應用程序下載並打開文件時,我在excel中收到一條消息:「我們發現file.xlsx中的某些內容存在問題。」然後我點擊是恢復的內容,這是日誌文件顯示:C#Excel文件下載破壞文件?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error128120_01.xml</logFileName><summary>Errors were detected in file 'F:\Downloads\file.xlsx'</summary><additionalInfo><info>Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded.</info></additionalInfo></recoveryLog>
這是我使用的下載在C#中的文件的代碼。從我的研究中我相信這是.xlsx的正確模式。另外,當我在文件夾資源管理器中打開該文件時,僅在下載後纔會出現該問題,。我已經嘗試了谷歌瀏覽器和Internet Explorer。
var fileInfo = new FileInfo(Path.Combine(Server.MapPath("~/Content/"), "file.xlsx"));
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment; filename=" + "file.xlsx");
Response.TransmitFile(fileInfo.FullName);
Response.Flush();
任何想法?
正如我所說,在文件資源管理器中,打開文件自然不會給出任何錯誤。一旦通過程序下載,該文件就有錯誤。如果你可以用FileResult顯示我的方式,我可以將你的答案標記爲正確的? – 2014-10-19 13:06:41
嘿,對不起,遲交回復。我增強了答案,讓我知道它是否有幫助。 – Mzn 2014-10-23 05:26:04