I have a formed file in some folder on server. I need to create some solution to allow user save this file local on drive on computer.
Can anyone advice me how it can be done, what control I should use.
I have a formed file in some folder on server. I need to create some solution to allow user save this file local on drive on computer.
Can anyone advice me how it can be done, what control I should use.
This will open the Browser SaveAs dialog:
protected void Page_Load(object sender, EventArgs e)
{
FileStream fs = File.OpenRead(Server.MapPath("~/imgName.jpg"));
byte[] buffer = new byte[(int)fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
fs.Close();
SetResponse("imgName");
HttpContext.Current.Response.BinaryWrite(buffer);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
private static void SetResponse(string fileName)
{
string attachment = "attachment; filename=" + fileName + ".jpg";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "image/jpeg";
HttpContext.Current.Response.AddHeader("Pragma", "public");
}
try opening the FileStream with this permissions:
FileStream fs = new FileStream(Server.MapPath("~/imgName.jpg"), FileMode.Open, FileAccess.Read, FileShare.Read);
You will just need to put a link of your file in aspx page.
<a href="path to your file on server">some text here</a>
When user click on this link they will got the download dialog box using which they can save the file to there local system.