.net批量下载图片
问题:
我想实现的是一个一个的下载。
比如我有一个文件列表。通过checkbox选择。通过单击下载按钮下载选中文件。
百度到都是用打包形式实现批量下载。
这是我自己写的代码,但是点击下载后只能下载一个文件。单步调试,循环只执行一次。不知道是什么原因。
后台代码
string Name;
string Path;
protected void Button2_Click(object sender, EventArgs e)
{
foreach (Control control in Panel1.Controls)
{
try
{
if (((CheckBox)control).Checked)
{
//获取选择文件的相对路径。我将文件的相对路径写在了CssClass里面
Path = ((CheckBox)control).CssClass;
string[] path = Path.Split('/');
Name = path[path.Length - 1];
download(Path, Name);
}
}
catch (Exception)
{ continue; }
}
}
private void download(string Path, string Name)
{
//用户下载文件时保存文件使用的默认命名
string downLoadFileName = Name;
//设定响应类型为下载
this.Response.ContentType = "application/x-zip-compressed";
//获取下载文件在服务器端的物理路径
string downLoadPath = this.Server.MapPath(Path);
//添加响应头标示信息 this.Server.UrlPathEncode对下载文件名进行编码 防止文件名乱码
this.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", this.Server.UrlPathEncode(downLoadFileName)));
//下载文件输出
this.Response.TransmitFile(downLoadPath);
this.Response.End();
}
具体怎样实现?是用多线程吗?求大大们指教。谢谢
解决方案:
包含头
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>donw2-多文件演示页面</title>
<link type="text/css" href="js/down.css" rel="Stylesheet" />
<script type="text/javascript" src="js/jquery-1.4.min.js"></script>
<script type="text/javascript" src="js/down.app.js" charset="utf-8"></script>
<script type="text/javascript" src="js/down.edge.js" charset="utf-8"></script>
<script type="text/javascript" src="js/down.file.js" charset="utf-8"></script>
<script type="text/javascript" src="js/down.folder.js" charset="utf-8"></script>
<script type="text/javascript" src="js/down.js" charset="utf-8"></script>
</head>
创建对象
<script type="text/javascript" language="javascript">
var downer = new DownloaderMgr();
downer.Config["Folder"] = "";//设置默认下载路径。
//挂载事件
downer.event.taskCreate = function (obj) { $(document.body).append("文件ID:" + obj.fileSvr.id) + "<br/>"; };
downer.event.downProcess = function (obj) { };
downer.event.downStoped = function (obj) { };
downer.event.downComplete = function (obj) {
$(document.body).append('<div>本地路径:' + obj.fileSvr.pathLoc + '</div>');
};
downer.event.downError = function (obj, err) { };
downer.event.queueComplete = function () { $(document.body).append("<div>队列完成</div>"); };
</script>
批量下载
$("#btn-down-files").click(function () {
if (downer.Config["Folder"] == "") { downer.open_folder(); return; }
var urls = [
{ fileUrl: "http://res2.ncmem.com/res/images/ie11.png" }
, { fileUrl: "http://res2.ncmem.com/res/images/up6.1/down.png" }
, { fileUrl: "http://res2.ncmem.com/res/images/firefox.png" }
, { fileUrl: "http://res2.ncmem.com/res/images/edge.png" }
, { fileUrl: "http://res2.ncmem.com/res/images/up6.1/cloud.png" }
, { fileUrl: "http://res2.ncmem.com/res/images/home/w.png" }
, { fileUrl: "http://res2.ncmem.com/res/images/img.png" }
];
downer.app.addUrls(urls);
});
网上示例:http://blog.ncmem.com/wordpress/2019/08/28/net文件批量下载/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现