祥记老板娘,任丘 北京,东阳市政府网
html
<a class="btn btn-warning" id="btndownload">选中下载</a>
js
/* 批量下载 */ // li 列表的文件下载 $("#btndownload").on('click', function() { var arr = []; var urls = escape(arr.join(',')); $(this).attr('href', '@url.action("batchdownloadfiles")?str=' + urls + '&r=' + math.random()); });
api
public actionresult batchdownloadfiles(string str, int type) { var idlist = str.split(',').tolist().convertall(x => int.parse(x)); memorystream ms = new memorystream(); zipoutputstream zos = new zipoutputstream(ms); zos.isstreamowner = false; zos.setlevel(1);//设置压缩级别 var rsp = new getlistbydetailidlistrequest { userid = currentuserid, jobtypeid = type, idlist = idlist }.getresponse(); if (rsp.issuccess) { rsp.data.foreach(dto => { var filebyte = byteofgetorderfiles(dto); //byte类型的数据 zipentry entry = new zipentry(filename); //定义新的压缩数据对象 zos.putnextentry(entry); zos.write(filebyte, 0, filebyte.length); //写入 }); } zos.finish(); zos.close(); ms.position = 0; return file(ms, "application/x-zip-compressed", string.format("批量下载文件-{0}.zip", datetime.now.tostring("yyyy年mm月dd hh时mm分ss秒"))); } public byte[] byteofgetorderfiles(extractrecorddetaildto dto) { var stream = downloadfile(dto.sourcefile); byte[] buffur = new byte[stream.length]; stream.read(buffur, 0, (int)stream.length); return buffur; } public static stream downloadfile(string path) { using (var client = new webclient()) { var stream = client.downloaddata(path); var outstream = new memorystream(stream); return outstream; } }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论