问题:

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

比如我有一个文件列表。通过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. Java反射中Class.forName和classloader的区别

    Java中Class.forName和classloader都可以用来对类进行加载. Class.forName除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块 ...

  2. linux服务器上安装jenkins

    nkins常用的有两种安装方式: 1.直接下载war包jenkins.war,下载地址https://jenkins.io/download 直接下载 1.1.可以把war包直接部署到servlet容 ...

  3. hibernate meger

    转: 在Hibernate中,有save.persist.savaOrUpdate.merge等方法有插入数据的功能.前三者理解起来较后者容易一些,merge方法从api中的介绍就看以看出它是最复杂的 ...

  4. python线程池及其原理和使用

    python线程池及其原理和使用 2019-05-29 17:05:20 whatday 阅读数 576 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互.在这种情形下,使用线程池可以很 ...

  5. 2019-2020-1 20199312《Linux内核原理与分析》第一周作业

    实验一:linux系统简介 Linux 本身只是操作系统的内核.内核是使其它程序能够运行的基础.它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上.其中有些程序是必需 ...

  6. 【安卓笔记】Android接入https证书进行请求

    Nginx在开发环境用的还是比较少,之前用在Web开发中解决跨域的问题,在安卓开发中如果想经过Nginx开启https并且转发到其他服务器,相关的配置步骤也不是特别复杂. Android使用自签名证书 ...

  7. 1-git的安装和基本使用

    说一下,我希望都要会用git,git很好用, 代码管理,多人合作开发一个项目,版本记录等等 https://gitee.com/    去上面注册一个账户 https://git-scm.com/do ...

  8. linux系列(十二):more命令

    1.命令格式: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file] 2.命令功能: more命令和cat的功能一样都是查看文件里的内容,但 ...

  9. Python怎么测试异步接口

    当业务处理比较耗时时, 接口一般会采用异步处理的方式, 这种异步处理的方式又叫Future模式. 一般流程 当你请求一个异步接口,接口会立刻返回你一个结果告诉你已经开始处理,结果中一般会包含一个任务i ...

  10. Myeclipse10 安装 破解 激活(含安装包,激活软件 免费)

    参考博客: https://www.cnblogs.com/gzhnan/articles/9536275.html 注意 安装完成之后一定不要点 Launch Myeclipse 下载地址: htt ...