ASP.NET下文件批量下载应用
-
2023-04-01 05:25:31
- 来源:网络
-
在手机上看
扫一扫立即进入手机端
1.场景描述
在B/S环境下,客户提出批量导出员工照片功能。具体为:选中一个部门或者单位,系统能够批量下载所选单元的照片,下载到用户客户端。
2.解决思路
由于系统中员工的照片存储在服务器硬盘上,因此,应该有两种方式供用户选择:其一,写一个C/S客户端,利用客户端功能,实现客户端批量下载操作。其二,在现有ASP.NET环境下,将所需照片文件合并成一个文件下载到用户客户端。比较而言,两种思路的难度都不大,但是考虑到系统的统一性,最终决定采用方案二,将文件打包后下载。
3.实现步骤
在用户操作界面,由用户选择员工,系统根据所选人员,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹。然后调用RAR程序,对临时文件夹进行压缩,然后输出到客户端。最后删除临时文件夹。
4.部分关键代码
创建临时文件夹
string Folder = DateTime.Now.ToString(“HHMMss“);
string tempFolder = Path.Combine(ImagesPath, Folder);
Directory.CreateDirectory(tempFolder);
var empList = rs.ToList();
拷贝照片文件
foreach (var x in empList)
{
File.Copy(ImagesPath + @“\“ + x.ID + “.jpg“, tempFolder + @“\“ + x.DeptName + “-“ + x.Name + “-“ + x.ID + “.jpg“);
}
产生RAR文件,及文件输出
RARsave(tempFolder, tempFolder, Folder);
ResponseFile(tempFolder + @“\“ + Folder + “.rar“);
public void RARsave(string patch, string rarPatch, string rarName)
{
String the_rar;
RegistryKey the_Reg;
Object the_Obj;
String the_Info;
ProcessStartInfo the_StartInfo;
Process the_Process;
try
{
the_Reg = Registry.ClassesRoot.OpenSubKey(@“winrar“);
the_Obj = the_Reg.GetValue(““);
the_rar = the_Obj.ToString();
the_Reg.Close();
the_rar = the_rar.Substring(1, the_rar.Length - 7);
Directory.CreateDirectory(patch);
//命令参数
//the_Info = “ a “ + rarName + “ “ + @“C:Test?70821.txt“; //文件压缩
the_Info = “ a “ + rarName + “ “ + patch + “ -r“;
the_StartInfo = new ProcessStartInfo();
the_StartInfo.FileName = “WinRar“;//the_rar;
the_StartInfo.Arguments = the_Info;
the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
//打包文件存放目录
the_StartInfo.WorkingDirectory = rarPatch;
the_Process = new Process();
the_Process.StartInfo = the_StartInfo;
the_Process.Start();
the_Process.WaitForExit();
the_Process.Close();
}
catch (Exception ex)
{
throw ex;
}
}
protected void ResponseFile(string fileName)
{
FileInfo fileInfo = new FileInfo(fileName);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader(“Content-Disposition“, “attachment;filename=“ + fileName);
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 = fileName.Substring(0, fileName.LastIndexOf(“\\“));
DelDir(tempPath);
Directory.Delete(tempPath);
Response.End();
}
相关资讯
更多游戏推荐
-
格式工厂FormatFactory
中文|97.0M
-
海报工厂官方版app
中文|79.3M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
AskAdmin(快速阻止访问文件)
中文|1.2M
-
人行征信中心密码控件非插件版
中文|2.7M
-
宽带密码查看器
中文|249KB
-
KeePassXC(密码管理器)
中文|27.5M
-
KeePass Portable(密码管理工具)
中文|3.2M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
AskAdmin(快速阻止访问文件)
中文|1.2M
-
k星球app
中文|140.7M
-
沙丁鱼星球软件
中文|73.0M
-
碰碰狐宝宝星球早教app
中文|104.9M
-
格式工厂FormatFactory
中文|97.0M
-
海报工厂官方版app
中文|79.3M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
桌面图标布局保存工具(DesktopOK x64)
中文|1.1M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
HS Backup(用户配置文件备份工具)
中文|40KB
-
宽带连接设置开机自动连接
中文|541KB
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
宽带连接设置开机自动连接
中文|541KB
-
格式工厂FormatFactory
中文|97.0M
-
全能影音格式解码器(K-Lite Mega Codec Pack)
中文|48.2M
-
1Click DVD Converter(DVD格式转换)
中文|12.7M
-
蒲公英AVI格式转换器
中文|9.1M
-
草料二维码浏览器插件
中文|279KB
-
Autodesk 3dsMax 2023.2 Update Repack
中文|9.23G
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
美美抠图大师(CShare Camera)
中文|21.4M
-
荒野乱斗应用宝版本
中文|289.4M
-
绘分享(亲子应用)
中文|54.7M
-
华为应用市场pc版
中文|227.1M
-
安卓手表adb实用工具箱(wear应用库)
中文|35.3M
-
粤教翔云数字教材应用平台3.0学生电脑版
中文|226.2M
-
少年得到张泉灵阅读课免费版
中文|105.6M
-
手写模拟器转换
中文|79M
-
转转大师pdf转换器官方版
中文|1021KB
-
图片批量转换器(CoolUtils Total Image Converter)
中文|43M
-
Quick Batch File Compiler(BAT转换EXE)
中文|4.2M
-
PDF文件转换器Coolutils Total PDF Converter
中文|67.5M
-
飞贷
中文|60.7M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
飞贷
中文|60.7M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
星光赛旅超级卡丁车(Starlit On Wheels)
中文|203.9M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
pdffactory pro虚拟打印机
中文|11.2M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
pdffactory pro虚拟打印机
中文|11.2M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
千千音乐电脑客户端
中文|50.7M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
千千音乐电脑客户端
中文|50.7M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
清华大学1911学堂
中文|163.9M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
安卓手表adb实用工具箱(wear应用库)
中文|35.3M
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M
-
Intel英特尔I217&I218&I219系列网卡驱动
中文|
-
菠萝图标提取器(文件图标提取器)
中文|664M
-
amd_xata.sys文件
中文|31KB
-
360驱动大师去诱导单文件版
中文|
-
XYplorer(文件标签修改)
中文|4.4M
-
expsrv.dll文件(支持win7)
中文|1.7M