2017-02-18 3 views
4

Я пытаюсь загрузить файл почтового индекса, сделанное Ionic.Zip.dll из asp.net C# веб-формы приложения, как это:Ошибка - ошибка сети при загрузке архива, сделанное 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(); 
Смежные вопросы