问题
I try to download an excel file made by EPPlus.dll
from an asp.net c# web form application. but i get Failed - network error.
It should be noted that mentioned error just occurs in chrome and the job can be done successfully in another browsers.
by the way this error does not occure on my localhost and it happens only on the main server.
It would be very helpful if someone could explain solution for this problem.
http://www.irandnn.ir/blog/PostId/29/epplus
回答1:
Try this:
using (ExcelPackage p = new ExcelPackage())
{
//Code to fill Excel file with data.
Byte[] bin = p.GetAsByteArray();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", Nombre_Del_Libro + ".xlsx"));
Response.BinaryWrite(bin);
Response.Flush();
Response.End();
}
回答2:
I had the same problem when I was using Response.Clear() and Response.Close() and had to avoid them to look my code as below which is working.
Response.Buffer = true;
Response.ContentType = mimeType;
Response.AddHeader("Content-Disposition", "attachment; filename=" + nameOfFile);
Response.BinaryWrite(bytes);
Response.End();
回答3:
I prefer not use response.End() because throw an exception
protected void DownloadFile(FileInfo downloadFile, string downloadFilename, string downloadContentType)
{
Byte[] bin = File.ReadAllBytes(downloadFile.FullName);
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = downloadContentType;
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", downloadFilename ));
Response.BinaryWrite(bin);
Response.Flush();
Response.SuppressContent = true;
}
回答4:
I had the same problem and I solved with the code below, note the quotes in filename=\"Name.xlsx\":
Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AppendHeader("content-disposition", "attachment; filename=\"Name.xlsx\"");
//Writeout the Content
Response.BinaryWrite(bytes);
回答5:
I am exporting html table code which is in string variable HTML
Following Code Working For Me
byte[] myFile = Encoding.ASCII.GetBytes(HTML);
Response.Clear();
Response.Buffer = true;
Response.AddHeader("Content-Type", "application/excel");
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0};", "BAGrowthReport.xls"));
Response.AddHeader("content-length", myFile.Length.ToString()); //Here is the additional header which is required for Chrome.
Response.BinaryWrite(myFile);
Response.Flush();
Response.Close();
来源:https://stackoverflow.com/questions/39617706/failed-network-error-when-downloading-excel-file-made-by-epplus-dll