2015-06-19 70 views
4

我只是想下載一個文件。但現在我只能下載圖像。如何下載無特定內容類型的文件

我有這樣的:

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult DownloadFile(DownloadFileModel model, string fileName, int fileId) 
     { 
      //var extension = Path.GetExtension(model.FileName).TrimStart('.'); 
      //var extensies = Seneca.SfsLib.FileSystemHelper.UploadOptInExtensions.Contains(extension); 
      string customerSchema = SfsHelpers.StateHelper.GetSchema(); 
      TemplateLibraryEntry entry = GetTemplateLibraryEntry(model.DesignId, customerSchema); 
      FileTree tree = CreateTree(model.DesignId, entry.FilePath);   
      FileInfo fileInfo = new FileInfo(tree.Files[fileId].FullPath); 
      DirectoryInfo directoryInfo = new DirectoryInfo(tree.Files[fileId].FullPath); 

      try { 
       var fs = System.IO.File.OpenRead(fileInfo + model.FileName); 
       return File(fs, "application/jpg", fileName); 
      } 
      catch { 
       throw new HttpException(404, "Couldn't find " + model.FileName); 


      }   

     } 

但如果我現在下載文件時,我看到每一次downloadfile。我的意思是我沒有看到費爾名稱和extensie

謝謝

+0

請格式化你的代碼。 – ramiramilu

+3

你可以使用'application/octet-stream' mime類型來執行任意的二進制文件類型。 – ramiramilu

回答

2

如果您使用的是.NET 4.5或更新版本,它已內置支持搶MIME直接從文件名輸入。

MSDN link

你可能只是做:

return File(fs, System.Web.MimeMapping.GetMimeMapping(fileName), fileName); 
+0

謝謝! - br4d – InfinityGoesAround

相關問題