2010-11-20 4 views
1

Это мой код. Я хочу uplade 3 файла в моей базе данныхЗагрузка нескольких файлов с использованием Request.Files ["files"] MVC

первый в View Я пишу это: <% при использовании (Html.BeginForm (ActionName, контроллер, FormMethod.Post, новый {ENCTYPE = "многочастному/форм-данных"})) {%> ..... ....

и это 3 файла uplaoding:

<input type="file" name="files" id="FileUpload1" /> 
<input type="file" name="files" id="FileUpload2" /> 
<input type="file" name="files" id="FileUpload3" /> 

В контроллере я использую этот код:

IEnumerable<HttpPostedFileBase> files = Request.Files["files"] as IEnumerable<HttpPostedFileBase>; 
foreach (var file in files) 
{ 
byte[] binaryData = null; 
HttpPostedFileBase uploadedFile = file; 
if (uploadedFile != null && uploadedFile.ContentLength > 0){ 
binaryData = new byte[uploadedFile.ContentLength]; 
uploadedFile.InputStream.Read(binaryData, 0,uploadedFile.ContentLength); 
} 
} 

, но файлы всегда возвращают NULL :(

, пожалуйста, помогите мне, спасибо.

ответ

4

Попробуйте вместо этого:

<% using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) {%> 
    <input type="file" name="files" id="FileUpload1" /> 
    <input type="file" name="files" id="FileUpload2" /> 
    <input type="file" name="files" id="FileUpload3" /> 
    <input type="submit" value="Upload" /> 
<% } %> 

и соответствующий контроллер:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Index(IEnumerable<HttpPostedFileBase> files) 
    { 
     foreach (var file in files) 
     { 
      if (file.ContentLength > 0) 
      { 
       // TODO: do something with the uploaded file here 
      } 
     } 
     return RedirectToAction("Index"); 
    } 
} 

Это немного чище.

+0

Нужно ли добавлять «IEnumerable файлы» в actionResult как параметр? Я делаю это, но все же NULL – Negar

+0

Да, таким образом вам больше не нужно использовать 'Request.Files' внутри действия. По умолчанию модель связующего будет выполнять эту работу. Я не знаю, почему вы получаете NULL. Являются ли эти входы внутри формы? Когда я проверил свой код, я смог загрузить загруженные файлы. –

+0

Большое спасибо Дарину. он работает сейчас :) – Negar

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