2017-01-16 67 views
-2

我對MVC和執行任務列表Web應用程序很陌生。我想讓用戶將文件附加到任務。我讀過我需要將它存儲在一個字節類型變量中。使用ASP.NET MVC將文件上傳到數據庫

我的控制器:

public ActionResult AddTask (TaskModel t, HttpPostedFileBase file) 
    { 
     if (Session["UserID"] != null) 
     { 
      using (ToDoListEntities3 context = new ToDoListEntities3()) 
      { 
       FilesTable ff = new FilesTable(); 


       t.fileId = Convert.ToInt32(Session["UserID"]); 

       ff.FileId = t.fileId; 

       if (file.ContentLength > 0) 
       { 
        var fileName = Path.GetFileName(file.FileName); 
        var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
        file.SaveAs(path); 
        ff.FileName = fileName; 

        var content = new byte[file.ContentLength]; 
        file.InputStream.Read(content, 0, file.ContentLength); 
        ff.File = content; 


       } 

我能夠存儲ID和文件名,但我不太明白文件的方式存儲在數據庫中。將文件轉換爲字節意味着什麼?

+1

你正在存儲的代碼(「〜/ App_Data/uploads)」不是Db。 –

回答

-2

您應該將文件存儲在SERVER中,而不是數據庫中,然後獲取文件目錄並將其保存爲Db中的字符串。

0

文件通常存儲在硬盤中。

您只需要將fileName和/或完整路徑存儲在數據庫中。 然後你可以通過數據庫中的文件名來檢索文件,但是很難。

但是,如果您想將其存儲在數據庫中,則應先將其轉換爲Byte數組。

相關問題