2017-01-16 2 views
-2

Я довольно новичок в MVC и делаю веб-приложение «Список дел». Я хочу разрешить пользователям прикреплять файл к задаче. Я прочитал, что мне нужно сохранить его в переменной типа байта.Загрузка файла в базу данных с помощью 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; 


       } 

Я был в состоянии хранить идентификатор и имя файла, но я не совсем понимаю, как эти файлы хранятся в БД. Что означает преобразование файла в байт?

+1

в вашем коде, который вы храните в ("~/App_Data/uploads), а не Db. –

ответ

-2

Вы должны сохранить файл в SERVER, а не в БД, затем получить каталог файлов и сохранить его как строку в своем Db.

0

Файлы обычно хранятся в жесткой памяти.

Вам нужно только сохранить имя файла и/или полный путь в базе данных. Затем вы можете получить файл через имя файла, находящееся в базе данных, но с жесткого.

Но если вы хотите сохранить его в базе данных, вы должны сначала преобразовать его в массив байтов.

Смежные вопросы