在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹。然后调用 rar程序,对临时文件夹进行压缩,然后输出到客户端。最后删除临时文件夹。
二、代码实现
1、asp.net批量下载 核心代码
//遍历服务器指定文件夹下的所有文件
string path = "uploads/image/";
string serverpath = server.mappath(path);
//创建临时文件夹
string tempname = datetime.now.tostring("yyyymmddhhmmss");
string tempfolder = path.combine(serverpath, tempname);
directory.createdirectory(tempfolder);
directoryinfo folder = new directoryinfo(serverpath);
foreach (fileinfo file in folder.getfiles())
{
string filename = file.name;
file.copy(serverpath + "/" + filename, tempfolder + "/" + filename);
}
//zkhelper.jshelper.alert("图片拷贝成功!");
//产生rar文件,及文件输出
rarsave(tempfolder, tempname);
downloadrar(tempfolder + "
\\\\" + tempname + ".rar");
/// <summary>
/// 下载生成的rar文件
/// </summary>
private void downloadrar(string file)
{
fileinfo fileinfo = new fileinfo(file);
response.clear();
response.clearcontent();
response.clearheaders();
response.addheader("content-disposition", "attachment;filename=" + fileinfo.name);
response.addheader("content-length", fileinfo.length.tostring());
response.addheader("content-transfer-encoding", "binary");
response.contenttype = "application/octet-stream";
response.contentencoding = system.text.encoding.getencoding("gb2312");
response.writefile(fileinfo.fullname);
response.flush();
string temppath = file.substring(0, file.lastindexof("
\\\\"));
//删除临时目录下的所有文件
deletefiles(temppath);
//删除空目录
directory.delete(temppath);
response.end();
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
网友评论