为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

文件下载的几种方式

2022-01-24 2页 doc 121KB 22阅读

用户头像 个人认证

正方体

暂无简介

举报
文件下载的几种方式先把有问题的代码贴出来吧, using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.Html...
文件下载的几种方式
先把有问题的代码贴出来吧, using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; namespace infoPlatClient.NetDisk {     public partial class downLoad : Com.DRPENG.Common.WebStruct.BaseForm     {         ///          /// 取得要下载文件的路径         ///          private string fileRpath         {             get             {                 return Request["fileRpath"] == null ? "" : Request["fileRpath"];             }         }         ///          /// 取得要下载文件的名称         ///                  protected void Page_Load(object sender, EventArgs e)         {                 if (!IsPostBack)                 this.DownloadFile();         }         public void DownloadFile()         {                 Response.ClearHeaders();                 Response.Clear();                 Response.Expires = 0;                 Response.Buffer =true;                 Response.AddHeader("Accept-Language", "zh-tw");                 string name = System.IO.Path.GetFileName(fileRpath);                 System.IO.FileStream files = new FileStream(fileRpath, FileMode.Open, FileAccess.Read, FileShare.Read);                 byte[] byteFile=null;                 if (files.Length == 0)                 {                     byteFile=new byte[1];                 }                 else                 {                     byteFile = new byte[files.Length];                 }                 files.Read(byteFile, 0, (int)byteFile.Length);                 files.Close();                               Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8));                 Response.ContentType = "application/octet-stream;charset=gbk";                 Response.BinaryWrite(byteFile);                 Response.End();                        }     } }  之前一直用这种下载方式,可是有一次用户上传了一个700Mb的文件时报内存溢出的问题,分析了一下原因,用户的内存只有256M,而下载文件时要创建内存流,导致了内存溢出。 解决:1>WriteFile分块下载,就是每次下载指定数量的多件;              2>通过超链接的方式;              lblDownLoad.Text = "下载" 下面是四种实现文件下载的方式: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; 下载文档到电脑,查找使用更方便1下载券  0人已下载HYPERLINK"http://wenku.baidu.com/link?url=R6rYAZAr9pIt_BkfCeIlHWaBgaMgSO5Wx5Iz-WYMAdQB7NlFajAX5ks458gikirpv290mS5r4aPhzp96MQMYszJAqB_dxHp1pAGMT3Jsxje"\l"##"下载还剩2页未读,继续阅读fileName);         Response.AddHeader("Content-Length", fileInfo.Length.ToString());         Response.AddHeader("Content-Transfer-Encoding", "binary");         Response.ContentType = "application/octet-stream";         Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");         Response.WriteFile(fileInfo.FullName);         Response.Flush();         Response.End();     }      //WriteFile分块下载     protected void Button3_Click(object sender, EventArgs e)     {          string fileName = "aaa.txt";//客户端保存的文件名         string filePath = Server.MapPath("DownLoad/aaa.txt");//路径          System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);          if (fileInfo.Exists == true)         {             const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力             byte[] buffer = new byte[ChunkSize];              Response.Clear();             System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);             long dataLengthToRead = iStream.Length;//获取下载的文件总大小             Response.ContentType = "application/octet-stream";             Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));             while (dataLengthToRead > 0 && Response.IsClientConnected)             {                 int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小                 Response.OutputStream.Write(buffer, 0, lengthRead);                 Response.Flush();                 dataLengthToRead = dataLengthToRead - lengthRead;             }             Response.Close();         }     }      //流方式下载     protected void Button4_Click(object sender, EventArgs e)     {         string fileName = "aaa.txt";//客户端保存的文件名         string filePath = Server.MapPath("DownLoad/aaa.txt");//路径          //以字符流的形式下载文件         FileStream fs = new FileStream(filePath, FileMode.Open);         byte[] bytes = new byte[(int)fs.Length];         fs.Read(bytes, 0, bytes.Length);         fs.Close();         Response.ContentType = "application/octet-stream";         //浏览器下载文件而不是打开         Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));         Response.BinaryWrite(bytes);         Response.Flush();         Response.End();      } }  取得要下载文件的路径阅读已结束,如果下载本文需要使用1下载券HYPERLINK"http://wenku.baidu.com/link?url=R6rYAZAr9pIt_BkfCeIlHWaBgaMgSO5Wx5Iz-WYMAdQB7NlFajAX5ks458gikirpv290mS5r4aPhzp96MQMYszJAqB_dxHp1pAGMT3Jsxje"\l"##"下载想免费下载本文?HYPERLINK"javascript:;"立即加入VIPHYPERLINK"http://wenku.baidu.com/user/browse/vipprivilege/"\l"id2"\t"_blank"文档免下载券下载特权HYPERLINK"http://wenku.baidu.com/user/browse/vipprivilege/"\l"id3"\t"_blank"全站付费文档8折起HYPERLINK"http://wenku.baidu.com/user/browse/vipprivilege/"\l"id4"\t"_blank"千本精品电子免费看HYPERLINK"http://wenku.baidu.com/view/6e0bf7d15fbfc77da269b1fe.html?re=view"下一篇把文档贴到Blog、BBS或个人站等:HYPERLINK"javascript:void(0);"复制HYPERLINK"javascript:void(0);"预览普通尺寸(450*500pix)较大尺寸(630*500pix)窗体顶端窗体底端你可能喜欢今日推荐146份文档HYPERLINK"http://wenku.baidu.com/xpage/interface/adclick?aid=7f81bceb19e8b8f67c1cb902&adurl=http%3A%2F%2Fwenku.baidu.com%2Ftopic%2F2015sjszgzks.html&source=http%3A%2F%2Fwenku.baidu.com%2Fview%2F4f54399b16fc700aba68fc0d.html&sig=a8419524f2e08b9979b69597edaab0ed"\o"2015上半年教师资格证考试"\t"_blank"2015上半年教师资格证考试HYPERLINK"http://wenku.baidu.com/view/dc33164443323968001c923e.html"\o"教师资格考试《幼儿教育学》模拟试题"\t"_blank"教师资格考试《幼儿教育学》模拟试题HYPERLINK"http://wenku.baidu.com/view/4b3f4bb36137ee06eff918a0.html"\o"2015教师资格《中学教育学》考前预测题及答案"\t"_blank"2015教师资格《中学教育学》考前预测题及答案HYPERLINK"http://wenku.baidu.com/view/b208fcb6d5bbfd0a78567346.html"\o"2015教资国考综合素质高频考点"\t"_blank"2015教资国考小学综合素质高频考点216份文档HYPERLINK"http://wenku.baidu.com/xpage/interface/adclick?aid=1f26af45b307e87101f69602&adurl=http%3A%2F%2Fwenku.baidu.com%2Ftopic%2F2015quanguolianghui.html&source=http%3A%2F%2Fwenku.baidu.com%2Fview%2F4f54399b16fc700aba68fc0d.html&sig=f6d5bebf624fefab0b9fb49a605936f8"\o"2015全国两会专题"\t"_blank"2015全国两会专题HYPERLINK"http://wenku.baidu.com/view/5f584a5e4b73f242336c5f9e.html"\o"傅莹:“史上最严环保法”对污染表示“零容忍”"\t"_blank"傅莹:“史上最严环保法”对污染表示“零容忍”HYPERLINK"http://wenku.baidu.com/view/1e07cc1858fafab069dc028a.html"\o"俞正声作政协常委会工作报告"\t"_blank"俞正声作政协常委会工作报告HYPERLINK"http://wenku.baidu.com/view/c932490f168884868762d6a7.html"\o"环境治理成两会建言热门:宁要绿水青山"\t"_blank"环境治理成两会建言热门:宁要绿水青山89份文档HYPERLINK"http://wenku.baidu.com/xpage/interface/adclick?aid=676ea45177232f60ddcca102&adurl=http%3A%2F%2Fwww.xilu.com%2F%3Fczclac%3D654afb53cdb48581d9f31a8602c2d73f&source=http%3A%2F%2Fwenku.baidu.com%2Fview%2F4f54399b16fc700aba68fc0d.html&sig=419df0621385edf44ac9b628326eb105"\o"爆笑大撞脸"\t"_blank"爆笑大撞脸HYPERLINK"http://wenku.baidu.com/view/c79dec6ea98271fe910ef99b.html"\o"超爆笑笑话"\t"_blank"超爆笑笑话HYPERLINK"http://wenku.baidu.com/view/30cbdfa50029bd64783e2c25.html"\o"有趣及爆笑图片汇集"\t"_blank"有趣及爆笑图片汇集HYPERLINK"http://wenku.baidu.com/view/5084f8dfd15abe23482f4d0e.html"\o"绝对经典搞笑照片"\t"_blank"绝对经典搞笑照片您的评论*感谢支持,给文档评个星吧!240HYPERLINK"javascript:void(0);"发布评论HYPERLINK"javascript:void(0);"换一换用户评价评论加载中...暂无评论©2015 Baidu HYPERLINK"http://www.baidu.com/duty/"\t"_blank"使用百度前必读 | HYPERLINK"http://wenku.baidu.com/portal/browse/help"\l"help/20"\t"_blank"文库 | HYPERLINK"http://wenku.baidu.com/portal/browse/websitemap"\t"_blank"网站地图用手机扫此二维码:HYPERLINK"http://wenku.baidu.com/link?url=R6rYAZAr9pIt_BkfCeIlHWaBgaMgSO5Wx5Iz-WYMAdQB7NlFajAX5ks458gikirpv290mS5r4aPhzp96MQMYszJAqB_dxHp1pAGMT3Jsxje"\l"##"×*当前选择了字,最多支持70字。以下结果由提供:HYPERLINK"http://wenku.baidu.com/link?url=R6rYAZAr9pIt_BkfCeIlHWaBgaMgSO5Wx5Iz-WYMAdQB7NlFajAX5ks458gikirpv290mS5r4aPhzp96MQMYszJAqB_dxHp1pAGMT3Jsxje"\l"##"×HYPERLINK"http://fanyi.baidu.com/"\t"_blank"百度翻译百科词条:HYPERLINK"http://wenku.baidu.com/link?url=R6rYAZAr9pIt_BkfCeIlHWaBgaMgSO5Wx5Iz-WYMAdQB7NlFajAX5ks458gikirpv290mS5r4aPhzp96MQMYszJAqB_dxHp1pAGMT3Jsxje"\l"##"×HYPERLINK"http://baike.baidu.com/"\t"_blank"百度百科关闭窗体顶端搜试试3HYPERLINK"http://wenku.baidu.com/portal/browse/help"\t"_blank"帮助HYPERLINK"http://www.baidu.com/s?wd=word&fr=wenku"\t"_blank"去网页搜索全部DOCPPTTXTPDFXLS
/
本文档为【文件下载的几种方式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索