2016-07-05 144 views
0

我想要做的是創建一個zip文件並下載這些文件。 這裏是我的控制器zip文件中的線程下載

 public FilePathResult Download(string Name) 
     { 
     string f1=null; 
     try 
     { 
      f1 = _dbBackupServiceService.DownloadBackupFile(Name); 

     } 
     catch (Exception ex) 
     { 

     } 

      return File(f1, "application/zip", Name + ".zip"); 
    } 

而且服務層看起來像這樣

public string DownloadBackupFile(string Name) 
    { 

     string backupFolder = HttpContext.Current.Server.MapPath("~/DbBackup"); 
     string filePath = backupFolder + "\\" + Name; 
     string zipFilePath = filePath.Substring(0, (filePath.Length - 3)) + "zip"; 

     var backupFileName = Path.GetFileNameWithoutExtension(filePath); 
     var zipFileName = Path.GetFileName(zipFilePath); 

      if (File.Exists(zipFilePath)) 
     { 

     } 
     else 
     { 
      ZipArchive zip = ZipFile.Open(zipFilePath, ZipArchiveMode.Create); 
      zip.CreateEntryFromFile(filePath, Name); 



     } 
     return zipFilePath; 



    } 

我現在面臨的問題是,而我對他們的zip文件則不會創建這些文件下載操作單擊。處理器將在下載線程運行時持續創建zip文件,從而導致瀏覽器顯示錯誤。而已經創建的zip文件可以成功下載。在下載發生之前,如何等待zip文件成功創建?

+0

通常會花費很多時間,讓你的用戶去,然後用電子郵件通知他郵編完成,這裏是鏈接下載... – Aristos

回答

-1

請添加以下語句

Thread.Sleep(5000); //這將使線程休眠5秒鐘。聲明

zip.CreateEntryFromFile(文件路徑,名稱)後

;

如果您仍然遇到問題,請增加睡眠時間。

+0

什麼是一個壞主意!躲開它 – Aristos