宝哥软件园

asp.net实现多个文件同时下载功能

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

本文实例为大家分享了ASP。网多个文件同时下载的具体代码,供大家参考,具体内容如下

1、首先读取文件夹下的文件,可能同时存在多个文件

2、选中文件,然后点击下载,同时可以选择多个文件。

思路:通过生产压缩包的形式进行下载,然后再清楚压缩包,这样用户可以一次性全部下载下来。

一、获取目录下的所有文件,然后绑定到checkboxlist中,代码如下:

ckl_ck .项目。清除();目录文件夹=新目录文件夹(服务器。映射路径('资源/帮助');//遍历文件夹下的文件foreach(文件夹中的文件信息下一个文件. GetFiles()) this.ckl_ck .项目。添加(下一个文件。名称);二、选中文件后,点击下载按钮。代码:

受保护的void Btn_down_Click(对象发送者,事件参数e) { if (ckl_ck).物品。计数0){ Liststring listFJ=new Liststring();//保存附件路径Liststring listFJName=new Liststring();//保存附件名字for(int I=0;我知道了。项目。计数;i ) { if (ckl_ck).项目[i].选中){ listFJ .添加(服务器。映射路径('资源/帮助/') ckl_ck .项目[i].文本);listFJName .添加(ckl_ck .项目[i].文本);} }字符串时间=日期时间.现在。蜱。tostring();ZipFileMain(列表FJ .ToArray(),listFJName .ToArray(),服务器。映射路径('资源/帮助/'时间。zip ')、9);//压缩文件下载文件(服务器UrlEncode('附件邮政编码'),服务器。映射路径('资源/帮助/'时间。zip ');//下载文件} }私有void DownloadFile(字符串文件名,字符串文件路径){文件信息文件信息=新文件信息(文件路径);回应clear();回应ClearContent();回应ClearHeaders();回应。添加标题('内容-处置','附件;fileName=' FIlename ');回应。添加标题('内容-长度,文件信息长度。ToString());回应添加标题('内容-传输-编码','二进制');回应内容类型=“应用程序/八位字节流”;回应。内容编码=系统文本。编码。getencoding(' GB 2312 ');回应WriteFile(文件信息。全名);回应flush();文件。删除(文件路径);//删除已下载文件回应end();} ///摘要///压缩文件////summary///param name=' fileName '要压缩的所有文件(完全路径)/param ///param name='fileName '文件名称/param ///param name='name '压缩后文件路径/param ///param名称='级别'压缩级别/param public void zippoutstream main(字符串[] fileName,字符串[]fileName,字符串名称,int Level){ zippoutstream s=new zippoutstream(文件.create(name));Crc32 crc=新的crc32();//压缩级别设置级别;//0 -仅存储到9 -表示最佳压缩尝试{ int m=0;foreach(文件名中的字符串文件){ //打开压缩文件文件流fs=文件OpenRead(文件);//文件地址字节[]缓冲=新字节[fs .长度];fs .读取(缓冲区,0,缓冲区。长度);//建立压缩实体ZIpEntry条目=新的ZIpEntry条目(文件名[m]).ToString());//原文件名//时间入口。日期时间=日期时间。现在;//空间大小入口尺寸=fs .长度;fs .close();crc .reset();crc .更新(缓冲区);入口Crc=crc .价值;s.PutNextEntry(条目);写入(缓冲区,0,缓冲区。长度);m;} }接球{投掷}最后{ s . Finish();关闭();} }三、系统中需要引用的dll需要下载。

四、运行效果如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

更多资讯
游戏推荐
更多+