Mohd Afzaal
Mohd Afzaal

Reputation: 3

Display .jpg / .png image from folder in browser instead of downloading it ASP.NET

I am trying to display .png / .jpg image in browser but the problem is instead of displaying the image in the browser it is getting downloaded. I have tried using content-disposition:inline as well but its downloading the complete aspx page. Can anyone help me with this. Below is my code

string filePath = "C:\\inetpub\\wwwroot\\Folder\\OSP\\20139000\\";
        string filename = "test.jpg";
        string contenttype = "image/" +
        Path.GetExtension(filename.Replace(".", ""));
        FileStream fs = new FileStream(filePath + filename,
        FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);
        Byte[] bytes = br.ReadBytes((Int32)fs.Length);
        br.Close();
        fs.Close();
        ////Write the file to response Stream
        Response.Buffer = true;
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = contenttype;
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(bytes);
        Response.Flush();
        Response.End();

Upvotes: 0

Views: 842

Answers (1)

Wiktor Zychla
Wiktor Zychla

Reputation: 48230

You miss

Response.Clear();

somewhere at the beginning of the script. Without clearing the response's buffer first, it already contains the text of the *.aspx page the script is run under.

Then, don't set the content's disposition to attachment, completely delete this line.

Upvotes: 2

Related Questions