知识大全 ASP.NET下文件批量下载应用
Posted 文件
篇首语:真正的知识使人真正地、实实在在地胜过他人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET下文件批量下载应用相关的知识,希望对你有一定的参考价值。
ASP.NET下文件批量下载应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
场景描述
在B/S环境下 客户提出批量导出员工照片功能 具体为 选中一个部门或者单位 系统能够批量下载所选单元的照片 下载到用户客户端
解决思路
由于系统中员工的照片存储在服务器硬盘上 因此 应该有两种方式供用户选择 其一 写一个C/S客户端 利用客户端功能 实现客户端批量下载操作 其二 在现有ASP NET环境下 将所需照片文件合并成一个文件下载到用户客户端 比较而言 两种思路的难度都不大 但是考虑到系统的统一性 最终决定采用方案二 将文件打包后下载
实现步骤
在用户操作界面 由用户选择员工 系统根据所选人员 在服务器上创建用于存储所选文件的临时文件夹 将所选文件拷贝至临时文件夹 然后调用RAR程序 对临时文件夹进行压缩 然后输出到客户端 最后删除临时文件夹
部分关键代码
创建临时文件夹
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( the_rar Length );
Directory CreateDirectory(patch);
//命令参数
//the_Info = a + rarName + + @ C:Test? 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( gb );
Response WriteFile(fileInfo FullName);
Response Flush();
string tempPath = fileName Substring( fileName LastIndexOf( \\\\ ));
DelDir(tempPath);
Directory Delete(tempPath);
Response End();
cha138/Article/program/net/201311/13948
相关参考
SystemIOFileInfofile=newSystemIOFileInfo(pstrFilePath); if(fileExists) ResponseClear(); Respo
ASP.NET从服务器下载文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! stringfil
ASP.NET文件下载函数使用浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET文
步骤 )先引用ICSharpCodeSharpZipLibdll )cs文件引入 usingSystemIO;usingSystemText; usingICSharpCodeSharpZ
ASP.NET中大文件下载的跟踪和恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Web应
一//TransmitFile实现下载 protectedvoidButton_Click(o
ASP.net(C#)批量上传图片 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 因本网站上传图
获取当前程序文件的路径也算是一个比较常见的需求比如我有一个文件connxml位于exe的同一目录在运行时需要从中读取一些设置信息 stringstr=ProcessGetCurrentProce
提高ASP.Net应用程序性能的十大方法(下) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!六后台
cha138/Article/program/net/201311/14277