Asp.net How To Download A File From Hyperlink Button

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Asp.net How To Download A File From Hyperlink Button as PDF for free.

More details

  • Words: 407
  • Pages: 4
ShowAttachmentsPage private void ShowAttachemnts() { GetQueryString(); List lstAttachemnts = new List(); lstAttachemnts = BllComplaints.getAttachmentsDetailsByAppIdAndDocId(_AppId, _DocId); if (lstAttachemnts != null && lstAttachemnts.Count > 0) { HyperLink arrLink = new HyperLink(); int i = 0; foreach (BllComplaints lst in lstAttachemnts) { arrLink = new HyperLink(); arrLink.ID = "HyperLink" + i++; arrLink.Text = lst.FileName; arrLink.NavigateUrl = "~/IFrame/Download.aspx?file=" + lst.DiskFileName; divAttachments.Controls.Add(arrLink); } } }

Download.aspx 1.Method using using using using using using using using using

System; System.Collections.Generic; System.Linq; System.Web; System.Web.UI; System.Web.UI.WebControls; System.IO; System.Threading; System.Configuration;

public partial class IFrame_Download : System.Web.UI.Page { String strAttachmentsPath = String.Empty; protected void Page_Load(object sender, EventArgs e) { strAttachmentsPath = ConfigurationManager.AppSettings["AttachmentsPath"].ToString(); string filename = Request["file"].ToString(); fileDownload(filename, strAttachmentsPath + "\\" + filename); } private void fileDownload(string fileName, string fileUrl) { Page.Response.Clear(); bool success = ResponseFile(Page.Request, Page.Response, fileName, fileUrl, 1024000); //if (!success) // Response.Write("Downloading Error!"); Page.Response.End();

} public static bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed) { try { FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); BinaryReader br = new BinaryReader(myFile); try { _Response.AddHeader("Accept-Ranges", "bytes"); _Response.Buffer = false; long fileLength = myFile.Length; long startBytes = 0; int pack = 10240; //10K bytes int sleep = (int)Math.Floor((double)(1000 * pack / _speed)) +

1;

if (_Request.Headers["Range"] != null) { _Response.StatusCode = 206; string[] range = _Request.Headers["Range"].Split(new char[] { '=', '-' }); startBytes = Convert.ToInt64(range[1]); } _Response.AddHeader("Content-Length", (fileLength startBytes).ToString()); if (startBytes != 0) { _Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength - 1, fileLength)); } _Response.AddHeader("Connection", "Keep-Alive"); _Response.ContentType = "application/octet-stream"; _Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8)); br.BaseStream.Seek(startBytes, SeekOrigin.Begin); int maxCount = (int)Math.Floor((double)((fileLength startBytes) / pack)) + 1; for (int i = 0; i < maxCount; i++) { if (_Response.IsClientConnected) { _Response.BinaryWrite(br.ReadBytes(pack)); Thread.Sleep(sleep); } else { i = maxCount; } } }

catch { return false; } finally { br.Close(); myFile.Close(); }

}

} catch { return false; } return true;

}

2.Method using using using using using using using using using

System; System.Collections.Generic; System.Linq; System.Web; System.Web.UI; System.Web.UI.WebControls; System.IO; System.Threading; System.Configuration;

public partial class IFrame_Download : System.Web.UI.Page { String strAttachmentsPath = String.Empty; protected void Page_Load(object sender, EventArgs e) { strAttachmentsPath = ConfigurationManager.AppSettings["AttachmentsPath"].ToString(); string filename = Request["file"].ToString(); DownloadFile(strAttachmentsPath + "\\" + filename); } private void DownloadFile(string serverFilePath) { FileInfo file = new FileInfo(serverFilePath); if (file.Exists == true) { Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "application/octet-stream"; Response.WriteFile(file.FullName); Response.End();

}

}

}

Restrict Browser back button

protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); string strDisAbleBackButton; strDisAbleBackButton = "<script language='javascript'>\n"; strDisAbleBackButton += "window.history.forward(1);\n"; strDisAbleBackButton += "\n"; ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton); }

Related Documents