0

我使用實體框架在asp.net MVC-5查看和我有提供的功能來上傳存儲在SQL Server作爲FILESTREAM文件(文件未存儲在文件夾中,但其內容作爲數據庫表中的字節數組)。現在我想從數據庫中獲取這些文件,並使它們出現在視圖中(將會有一個鏈接作爲文件名,您可以點擊它並開始下載過程)。此外,表中還有列分別保存文件名,文件擴展名及其內容。 我將爲您提供我的模型和控制器進行上傳,所以你必須知道我是怎麼做的:如何讓下載的文件從控制器

public class File 
{ 
    [Key] 
    public int fileId{ get; set; } 

    [Required] 
    public byte[] fileContent{ get; set; } 

    public string fileUrl { get; set; } 

    public string fileExtension{ get; set; } 

    public string fileName{ get; set; } 
} 

[HttpPost] 
public ActionResult UploadFile([Bind(Include = "Title, File")] FileViewModel 
fileModel) 
{ 
    if (ModelState.IsValid) 
    { 
     var fileData = new MemoryStream(); 
     fileModel.File.InputStream.CopyTo(fileData); 

     string name = Path.GetFileName(fileModel.File.FileName); 
     string extension= Path.GetExtension(fileModel.File.FileName); 

     var file = new FileModel { fileName = name, 
     fileExtension= extension, fileContent= fileData.ToArray() }; 
     _context.File.Add(file); 

     _context.SaveChanges(); 

     return RedirectToAction("UploadFile"); 
    } 
    return View(fileModel); 
} 

我試圖尋找答案,但每個響應做一些事情,我不需要。我查閱了FileStreamResult,但從這個角度來看,我無法滿足我的需求。

回答

0

試試這個下載文件。

var fileanme ="your filename with path"; 
var fileBytes = System.IO.File.ReadAllBytes(fileanme); 
Response.AppendHeader("Content-Disposition", "inline; filename='abc.pdf'"); 
return File(fileBytes, "application/pdf"); 
+0

我看到類似這樣的東西,但問題在於File方法的第二個參數中的魔術字符串。因爲我有多種類型可以發佈和下載,所以它有點棘手。我會記住這段代碼。謝謝。 –