IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)操作系統(tǒng)LINUX → ASP.NET下文件批量下載應(yīng)用

ASP.NET下文件批量下載應(yīng)用

時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

  1.場(chǎng)景描述

  在B/S環(huán)境下,客戶提出批量導(dǎo)出員工照片功能。具體為:選中一個(gè)部門或者單位,系統(tǒng)能夠批量下載所選單元的照片,下載到用戶客戶端。

  2.解決思路

  由于系統(tǒng)中員工的照片存儲(chǔ)在服務(wù)器硬盤上,因此,應(yīng)該有兩種方式供用戶選擇:其一,寫一個(gè)C/S客戶端,利用客戶端功能,實(shí)現(xiàn)客戶端批量下載操作。其二,在現(xiàn)有ASP.NET環(huán)境下,將所需照片文件合并成一個(gè)文件下載到用戶客戶端。比較而言,兩種思路的難度都不大,但是考慮到系統(tǒng)的統(tǒng)一性,最終決定采用方案二,將文件打包后下載。

  3.實(shí)現(xiàn)步驟

  在用戶操作界面,由用戶選擇員工,系統(tǒng)根據(jù)所選人員,在服務(wù)器上創(chuàng)建用于存儲(chǔ)所選文件的臨時(shí)文件夾,將所選文件拷貝至臨時(shí)文件夾。然后調(diào)用RAR程序,對(duì)臨時(shí)文件夾進(jìn)行壓縮,然后輸出到客戶端。最后刪除臨時(shí)文件夾。

  4.部分關(guān)鍵代碼

  創(chuàng)建臨時(shí)文件夾

  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");

  }

  產(chǎn)生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);

  //命令參數(shù)

  //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();

  }

關(guān)鍵詞標(biāo)簽:ASP.NET

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠(yuǎn)程會(huì)話使用screen管理你的遠(yuǎn)程會(huì)話GNU/Linux安裝vmwareGNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連

相關(guān)下載

人氣排行 Linux下獲取CPUID、硬盤序列號(hào)與MAC地址linux tc實(shí)現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號(hào)linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤IO讀寫負(fù)載