问题:

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

比如我有一个文件列表。通过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. 【经典/基础BFS+略微复杂的题意】PAT-L3-004. 肿瘤诊断

    L3-004. 肿瘤诊断 在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积. 输入格式: 输入第一行给出4个正整数:M.N.L.T,其中M和N是 ...

  2. 1260:【例9.4】拦截导弹(Noip1999)

    题目来源:http://ybt.ssoier.cn:8088/problem_show.php?pid=1260 1260:[例9.4]拦截导弹(Noip1999) 时间限制: 1000 ms     ...

  3. 《ABCD组》第六次作业:团队项目系统设计改进与详细设计

    <ABCD组>第六次作业:团队项目系统设计改进与详细设计 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ht ...

  4. 前端学习笔记--Visual Studio Code安装及中文显示

    1.在官网https://code.visualstudio.com/下载对应的版本: 2.安装 一路点击下一步,选中  添加到PATH后,安装. 安装成功,可以直接打开使用: 把界面改成中文显示: ...

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

    删除旧版menu克隆新版menu并运行 rm -rf menu git clone http://github.com/mengning/menu.git make rootfs 查看新增功能,及其具 ...

  6. AtCoder NIKKEI Programming Contest 2019 E. Weights on Vertices and Edges (并查集)

    题目链接:https://atcoder.jp/contests/nikkei2019-qual/tasks/nikkei2019_qual_e 题意:给出一个 n 个点 m 条边的无向图,每个点和每 ...

  7. Laravel Model updating&updated 事件使用注意事项

    1 触发条件 1.1 updating 1.1.1 如果字段无变化,不会触发此事件. 1.1.2 除非更改至少一个字段的值 2 事件逻辑不会覆盖 2.1 Trait 中定义事件如下 /** * The ...

  8. jQuery的ajax()方法提交数组问题

    http://blog.csdn.net/thc1987/article/details/7278269 解决办法是添加一个属性 traditional:true $.ajax({    type: ...

  9. ooo's vimrc

    colorscheme evening set fillchars=vert:\ ,stl:\ ,stlnc:\ set nu set tabstop=4 set shiftwidth=4 set s ...

  10. JavaBean转Map

    1.需要的jar包 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava ...