2017-02-19 42 views
3

我被Ionic.Zip.dll像這樣(ASP.NET,C#)創建一個zip:失敗 - 網絡錯誤中獲取Zip文件中鉻

zip.AddEntry("Document.jpeg", File.ReadAllBytes("Path"); 

我想這樣的下載:

Response.Clear(); 
Response.BufferOutput = false; 
Response.ContentType = "application/zip"; 
Response.AddHeader("content-disposition", "filename=SuppliersDocuments.zip"; 
zip.Save(Response.OutputStream); 
Response.Close(); 

我在Firefox和Chrome的本地主機上測試了這段代碼,它工作正常。但是當我在主機上測試此代碼時,出現此錯誤:

Failed - network error

是我的代碼錯了嗎?

+1

嘗試添加content-Size到響應標題。讓我知道它是否有效。 – Kahbazi

回答

0

我遇到了中繼SSRS報告的類似問題。以@阿文的建議下,我做了以下內容:

private void CreateReport(string ReportFormat) 
{ 
    ReportViewer rview = new ReportViewer(); 

    // (setup report viewer object) 

    // Run report 
    byte[] bytes = rview.ServerReport.Render(ReportFormat, deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings); 

    // Manually create a response 
    Response.Clear(); 
    Response.ContentType = mimeType; 
    Response.AddHeader("Content-disposition", string.Format("attachment; filename={0}.{1}", fileName, extension)); 

    // Ensure the content size is set correctly 
    Response.AddHeader("Content-Length", bytes.Length.ToString()); // <- important 

    // Write to the response body 
    Response.OutputStream.Write(bytes, 0, bytes.Length); 

    // (cleanup streams) 
} 

的修復程序。添加Content-Length頭並將其設置爲從報告服務的字節數組的大小。

相關問題