问题:

我想实现的是一个一个的下载。

比如我有一个文件列表。通过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怎样实现批量下载文件(非打包形式下载)的更多相关文章

  1. Python之FTP多线程下载文件之多线程分块下载文件

    Python之FTP多线程下载文件之多线程分块下载文件 Python中的ftplib模块用于对FTP的相关操作,常见的如下载,上传等.使用python从FTP下载较大的文件时,往往比较耗时,如何提高从 ...

  2. 批量下载,多文件压缩打包zip下载

    0.写在前面的话 图片批量下载,要求下载时集成为一个压缩包进行下载.从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助. 1.先叨叨IO ...

  3. ASP.NET Core 返回文件、用户下载文件,从网站下载文件,动态下载文件

    ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载.但是这种方法可能不安全,也不够灵活. 我们可以在 Controller 控制器中 添加 一个 Action,通过此Action ...

  4. linux和windows之间上传 下载文件 非ftp方式

    用 命令 rz   上传   sz 下载  文件夹加上 -r  rz上传替换时用 -y   谁用谁知道 两台linux传 : scp -r  文件夹  username@ip:路径  (如果传输文件就 ...

  5. flask上传下载文件(一)下载

    简介: 作为一个可以和用户交互的web应用,必然要有数据导出功能,导出到excel是比较常用的方式. flask有一个扩展叫flask-excel,可能不适合中国人用,因为没有看到修改列名的功能.也许 ...

  6. 使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!

    一 对于某些环境导出是直接用wiondow.href=url直接导出下载,有些业务需求,如员工档案等字段比较多的时候,全选导出就会引发异常,由于Nginx转发长度限制的问题, 如果运维不愿意改变环境, ...

  7. java 多线程下载文件并实时计算下载百分比(断点续传)

    多线程下载文件 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来 ...

  8. php curl下载文件由于空格导致下载文件失败

    <?php //$result=httpcopy('http://www.phpernote.com/image/logo.gif'); echo '<pre>';print_r($ ...

  9. asp.net 批量下载实现(打包压缩下载)

    1.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default ...

随机推荐

  1. JSOI2012 玄武密码 和 HDU2222 Keywords Search

    玄武密码 给若干模式串和一个文本串.求每个模式串在文本串上能匹配的最大前缀长度. N<=10^7,M<=10^5,每一段文字的长度<=100. jklover的题解 将模式串建成一个 ...

  2. MVC框架和MTV框架

    MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),具有耦合性低 ...

  3. docker学习(六) Docker命令查询

    Docker命令查询 1.基本语法docker [OPTIONS] COMMAND [arg...]一般来说,Docker 命令可以用来管理 daemon,或者通过 CLI 命令管理镜像和容器.可以通 ...

  4. 判断大文件是否上传成功(一个大文件上传到ftp,判断是否上传完成)

    大文件上传ftp,不知道有没有上传完成,如果没有上传完成另一个程序去下载这个文件,导致下载不完整. 判断一个文件是否上传完成的方法: /** * 间隔一段时间去计算文件的长度来判断文件是否写入完成 * ...

  5. C++构造函数的default和delete

    C++11中,当类中含有不能默认初始化的成员变量时,可以禁止默认构造函数的生成, myClass()=delete;//表示删除默认构造函数 myClass()=default;//表示默认存在构造函 ...

  6. 【luogu1251】餐巾计划问题--网络流建模,费用流

    题目描述 一个餐厅在相继的 N 天里,每天需用的餐巾数不尽相同.假设第 iii 天需要 ri​块餐巾( i=1,2,...,N).餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部 ...

  7. 6.Python3字符串和格式化

    一.字符串 1.字符串表示方法 2.字符串的序号 3.字符串的使用 4.字符串切片 5.字符串的特殊字符 6.字符串操作符 案例:输入对应的数字显示对应的星期 '''weekStr = "星 ...

  8. java 封装返回结果实体类 返回结果以及错误信息

    public class ResponseMessage { private final static String STATUS_OK = "0"; private final ...

  9. 正则re.complie作用

    封装一个原本重复使用的正则表达式 prog = re.compile(pattern) result = prog.match(string)

  10. mac 登陆phpmyadmin 提示 mysqli_real_connect(): (HY000/2002): No such file or directory

    我们将下载的phpmyadmin 放在apache目录中,进入phpmyadmin目录, 首先将这个目录中的配置文件改名 sudo mv config.sample.inc.php config.in ...