Failed - ошибка сети при загрузке zip-файла, созданного Ionic.Zip.dll

Я пытаюсь скачать ZIP-файл, созданный Ionic.Zip.dll из приложения asp.net C# веб-формы, например:

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 как это:

Ошибка просто возникает в Chrome, и она работает правильно в других браузерах. Ошибка не возникает на моем локальном хосте и происходит только на главном сервере.

Было бы очень полезно, если бы кто-то мог объяснить решение этой проблемы.

1 ответ

У меня та же проблема, и это происходит в Chrome. Эта проблема возникает в Chrome v53 и более поздних версиях, что объясняется здесь.

Чтобы преодолеть эту проблему, я предлагаю вам получить длину файла и использовать 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();
Другие вопросы по тегам