知识大全 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

相关参考

知识大全 asp.net下载文件

  SystemIOFileInfofile=newSystemIOFileInfo(pstrFilePath);  if(fileExists)    ResponseClear();  Respo

知识大全 ASP.NET 从服务器下载文件

ASP.NET从服务器下载文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  stringfil

知识大全 ASP.NET文件下载函数使用浅析

ASP.NET文件下载函数使用浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET文

知识大全 asp.net实现文件夹及文件压缩,并实现下载

  步骤  )先引用ICSharpCodeSharpZipLibdll  )cs文件引入  usingSystemIO;usingSystemText;  usingICSharpCodeSharpZ

知识大全 ASP.NET中大文件下载的跟踪和恢复

ASP.NET中大文件下载的跟踪和恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Web应

知识大全 asp.net下载文件几种方式

   一//TransmitFile实现下载      protectedvoidButton_Click(o

知识大全 ASP.net(C#)批量上传图片

ASP.net(C#)批量上传图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  因本网站上传图

知识大全 asp.net获取控制台应用程序路径

  获取当前程序文件的路径也算是一个比较常见的需求比如我有一个文件connxml位于exe的同一目录在运行时需要从中读取一些设置信息  stringstr=ProcessGetCurrentProce

知识大全 提高ASP.Net应用程序性能的十大方法(下)

提高ASP.Net应用程序性能的十大方法(下)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!六后台

知识大全 asp.net显示下载提示的下载网页程序

cha138/Article/program/net/201311/14277