Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failed - network error when downloading excel file made by EPPlus.dll

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

like image 640
Reza Amini Avatar asked Sep 21 '16 13:09

Reza Amini


3 Answers

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; 
    }
like image 53
Ferri Avatar answered Sep 24 '22 07:09

Ferri


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();
like image 18
Nampally Dheeraj Avatar answered Oct 22 '22 17:10

Nampally Dheeraj


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();
}   
like image 8
Alfonso Villegas Avatar answered Oct 22 '22 16:10

Alfonso Villegas