asp.net怎样实现批量下载文件(非打包形式下载)
问题:
我想实现的是一个一个的下载。
比如我有一个文件列表。通过checkbox选择。通过单击下载按钮下载选中文件。
百度到都是用打包形式实现批量下载。
这是我自己写的代码,但是点击下载后只能下载一个文件。单步调试,循环只执行一次。不知道是什么原因。
后台代码
string Name;
string Path;
protectedvoid 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;}
}
}
privatevoid 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>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>donw2-多文件演示页面</title>
<linktype="text/css"href="js/down.css"rel="Stylesheet"/>
<scripttype="text/javascript"src="js/jquery-1.4.min.js"></script>
<scripttype="text/javascript"src="js/down.app.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/down.edge.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/down.file.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/down.folder.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/down.js"charset="utf-8"></script>
</head>
创建对象
<scripttype="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文件批量下载/
asp.net怎样实现批量下载文件(非打包形式下载)的更多相关文章
- Python之FTP多线程下载文件之多线程分块下载文件
Python之FTP多线程下载文件之多线程分块下载文件 Python中的ftplib模块用于对FTP的相关操作,常见的如下载,上传等.使用python从FTP下载较大的文件时,往往比较耗时,如何提高从 ...
- 批量下载,多文件压缩打包zip下载
0.写在前面的话 图片批量下载,要求下载时集成为一个压缩包进行下载.从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助. 1.先叨叨IO ...
- ASP.NET Core 返回文件、用户下载文件,从网站下载文件,动态下载文件
ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载.但是这种方法可能不安全,也不够灵活. 我们可以在 Controller 控制器中 添加 一个 Action,通过此Action ...
- linux和windows之间上传 下载文件 非ftp方式
用 命令 rz 上传 sz 下载 文件夹加上 -r rz上传替换时用 -y 谁用谁知道 两台linux传 : scp -r 文件夹 username@ip:路径 (如果传输文件就 ...
- flask上传下载文件(一)下载
简介: 作为一个可以和用户交互的web应用,必然要有数据导出功能,导出到excel是比较常用的方式. flask有一个扩展叫flask-excel,可能不适合中国人用,因为没有看到修改列名的功能.也许 ...
- 使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!
一 对于某些环境导出是直接用wiondow.href=url直接导出下载,有些业务需求,如员工档案等字段比较多的时候,全选导出就会引发异常,由于Nginx转发长度限制的问题, 如果运维不愿意改变环境, ...
- java 多线程下载文件并实时计算下载百分比(断点续传)
多线程下载文件 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来 ...
- php curl下载文件由于空格导致下载文件失败
<?php //$result=httpcopy('http://www.phpernote.com/image/logo.gif'); echo '<pre>';print_r($ ...
- asp.net 批量下载实现(打包压缩下载)
1.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default ...
随机推荐
- 【经典/基础BFS+略微复杂的题意】PAT-L3-004. 肿瘤诊断
L3-004. 肿瘤诊断 在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积. 输入格式: 输入第一行给出4个正整数:M.N.L.T,其中M和N是 ...
- 1260:【例9.4】拦截导弹(Noip1999)
题目来源:http://ybt.ssoier.cn:8088/problem_show.php?pid=1260 1260:[例9.4]拦截导弹(Noip1999) 时间限制: 1000 ms ...
- 《ABCD组》第六次作业:团队项目系统设计改进与详细设计
<ABCD组>第六次作业:团队项目系统设计改进与详细设计 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ht ...
- 前端学习笔记--Visual Studio Code安装及中文显示
1.在官网https://code.visualstudio.com/下载对应的版本: 2.安装 一路点击下一步,选中 添加到PATH后,安装. 安装成功,可以直接打开使用: 把界面改成中文显示: ...
- 2019-2020-1 20199312《Linux内核原理与分析》第六周作业
删除旧版menu克隆新版menu并运行 rm -rf menu git clone http://github.com/mengning/menu.git make rootfs 查看新增功能,及其具 ...
- AtCoder NIKKEI Programming Contest 2019 E. Weights on Vertices and Edges (并查集)
题目链接:https://atcoder.jp/contests/nikkei2019-qual/tasks/nikkei2019_qual_e 题意:给出一个 n 个点 m 条边的无向图,每个点和每 ...
- Laravel Model updating&updated 事件使用注意事项
1 触发条件 1.1 updating 1.1.1 如果字段无变化,不会触发此事件. 1.1.2 除非更改至少一个字段的值 2 事件逻辑不会覆盖 2.1 Trait 中定义事件如下 /** * The ...
- jQuery的ajax()方法提交数组问题
http://blog.csdn.net/thc1987/article/details/7278269 解决办法是添加一个属性 traditional:true $.ajax({ type: ...
- ooo's vimrc
colorscheme evening set fillchars=vert:\ ,stl:\ ,stlnc:\ set nu set tabstop=4 set shiftwidth=4 set s ...
- JavaBean转Map
1.需要的jar包 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava ...