问题:

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

比如我有一个文件列表。通过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. 1260:【例9.4】拦截导弹(Noip1999)

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

  2. erase & remove_if 合用

    words_.erase( remove_if( words_.begin(), words_.end(), [&](const entry& e) { return (e.type ...

  3. 《AlwaysRun!》第五次作业:项目需求分析改进与系统设计

     项目 内容 这个作业属于哪个课程 2016级软件工程(西北师范大学) 这个作业的要求在哪里 实验九 团队作业5—团队项目需求改进与系统设计 团队名称 Always Run! 作业学习目标 (1)掌握 ...

  4. hive on spark (spark2.0.0 hive2.3.3)

    hive on spark真的很折腾人啊!!!!!!! 一.软件准备阶段 maven3.3.9 spark2.0.0 hive2.3.3 hadoop2.7.6 二.下载源码spark2.0.0,编译 ...

  5. PHP+下载文件夹

    php下载文件我整理了这三种方法,和大家分享一下: 第一种:直接添加文件下载的绝对路径连接 //如:我有一个文件在demo.xx.cn/demo.zip<button>    <a ...

  6. SPOJ 2939 QTREE5 LCT

    维护信息的方式十分巧妙~ 维护每一棵 splay 中深度最浅,深度最深的点距离最近的白点. 这样非常方便维护,进行区间合并,进行子树维护 很多时候在维护东西的时候最大/最小/深度最小/深度最大会相对容 ...

  7. tarjan模板完整版

    https://www.luogu.org/problem/P2863 #include<cstdio> #include<vector> using namespace st ...

  8. 爬虫(十四):scrapy下载中间件

    下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量.底层的系统. 激活Downloader Midd ...

  9. pandas记录

    pandas的map方法使用 import pandas as pd import numpy as np data = pd.DataFrame(np.random.randint(0, 10, ( ...

  10. pandas 筛选某一列最大值最小值 sort_values、groupby、max、min

    高效方法: dfs[dfs['delta'].isnull()==False].sort_values(by='delta', ascending=True).groupby('Call_Number ...