2017-02-18 9 views
4

によって作られたzipファイルをダウンロードするとき、私はこのようなのasp.net C#のWebフォームアプリケーションからIonic.Zip.dllによって作られたzipファイルダウンロードしよう:に失敗しました - ネットワークエラーをIonic.Zip.dll

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

をしかし、私は取得しますこのようなFailed - network error

enter image description here

エラーがちょうどクロムで発生し、それが他のブラウザでは正常に動作します。 ローカルホスト上でエラーは発生せず、メインサーバ上でのみ発生します。

誰かがこの問題の解決方法を説明できると非常に役に立ちます。

答えて

0

私は同じ問題があります。これはChromeで発生します。この問題は、Chrome v53以降で発生しています(hereで説明されています)。

この問題を解決するには、ファイルの長さを取得し、ヘッダーにContent-Lengthを使用し、ファイルの長さを渡すことをお勧めします。

string fileName = string.Format("Download.zip"); 
Response.BufferOutput = false; // for large files 
using (ZipFile zip = new ZipFile()) 
{ 
     zip.AddFile(path, "Download"); 
     Response.Clear(); 
     Response.Buffer = true; 
     Response.ContentType = "application/zip"; 
     Response.AddHeader(name: "Content-Disposition", value: "attachment;filename=" + fileName); 
     Int64 fileSizeInBytes = new FileInfo(path).Length; 
     Response.AddHeader("Content-Length", fileSizeInBytes.ToString());          
     zip.Save(Response.OutputStream); 
     Response.Flush(); 
} 
Response.Close(); 
関連する問題