文件流下载 ASP.NET
using?System.IO?
void?Download()
{
????System.IO.FileStream r?=?new?System.IO.FileStream(FileName, System.IO.FileMode.Open);????//文件下載實例化?
????//設置基本信息???
????Response.Buffer=?false;??
????Response.AddHeader("Connection",?"Keep-Alive");??
????Response.ContentType?=?"application/octet-stream";??
????Response.AddHeader("Content-Disposition",?"attachment;filename="?+?System.IO.Path.GetFileName(FileName));?//?此處文件名如果是中文在瀏覽器默認是籌碼,應該加HttpUtility.UrlEncode(filename)?
????Response.AddHeader("Content-Length", r.Length.ToString());??
????while?(true)????//如果文件大于緩沖區,通過while循環多次加載文件?
????{??
????????//開辟緩沖區空間???
????????byte[] buffer?=?new?byte[1024];??//讀取文件的數據???
????????int?leng?=?r.Read(buffer,?0,?1024);??
????????if(leng?==?0)?????????????//到文件尾,結束???
????????????break;??
????????if?(leng?==?1024)????????????//讀出的文件數據長度等于緩沖區長度,直接將緩沖區數據寫入??
????????????Response.BinaryWrite(buffer);???????????//向客戶端發送數據流?
????????else??
????????{??
????????????//讀出文件數據比緩沖區小,重新定義緩沖區大小,只用于讀取文件的最后一個數據塊??
????????????byte[] b?=?new?byte[leng];??for?(int?i?=?0; i?<?leng; i++)??
????????????b[i]?=?buffer[i];??
????????????Response.BinaryWrite(b);??
????????}??
????}
????r.Close();//關閉下載文件??
????Response.End();//結束文件下載?
}
轉載于:https://www.cnblogs.com/chaoa/archive/2012/03/09/2386106.html
總結
以上是生活随笔為你收集整理的文件流下载 ASP.NET的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AE怎么做动起来的线条文字? ae虚线文
- 下一篇: Win11动态更新KB5028312/K