Note that there are some explanatory texts on larger screens.

plurals
  1. POA bug in win7 about ASP.Net Download file to client browser?
    primarykey
    data
    text
    <p>Let me say:</p> <p>Click the first link pop up the save as box,then click cancel。Next,</p> <p>Click the second link pop up the save as box,then click cancel。Next,</p> <p>Click the third link pop up the save as box,then click cancel。</p> <p>At the moment,The pop up box do not show and the page same as busying!</p> <p>The condition just in win7 . In XP no problem.</p> <p>Sorry for my bad english! Index.aspx:</p> <pre><code>&lt;a href="ShowFile.aspx?fileID=1" &gt;download&lt;/a&gt; &lt;a href="ShowFile.aspx?fileID=2" &gt;download&lt;/a&gt; &lt;a href="ShowFile.aspx?fileID=3"&gt;download&lt;/a&gt; &lt;a href="ShowFile.aspx?fileID=4" &gt;download&lt;/a&gt; </code></pre> <p>ShowFile.aspx.cs:</p> <pre><code>protected void Page_Load(object sender, EventArgs e) { Page.Response.Clear(); bool success = ResponseFile(Page.Request, Page.Response, "1.doc", @"d:\1.doc", 1024000); if (!success) Response.Write("dowload 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; double pack = 10240; //10K bytes //int sleep = 200; // int sleep = (int)Math.Floor(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((fileLength - startBytes) / pack) + 1; for (int i = 0; i &lt; maxCount; i++) { if (_Response.IsClientConnected) { _Response.BinaryWrite(br.ReadBytes(int.Parse(pack.ToString()))); Thread.Sleep(sleep); } else { i = maxCount; } } } catch { return false; } finally { br.Close(); myFile.Close(); } } catch { return false; } return true; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload