2017-03-18 31 views
1

我想上传多个文件,包括Word文档,PDF和图像。 我需要为文件使用单个输入,因为我们不知道将会上传多少个文件。在Asp Mvc上传单个输入的多个文件

我的代码是这个,但我有问题,我不能发送文件到服务器端。

控制器代码:

public ActionResult Create([Bind(Include = "Id,Content")] Message message, IEnumerable<HttpPostedFileBase> files) 
    { 

     if (ModelState.IsValid) 
     { 
     // Object save logic 
     SaveFiles(message,files); 
     return RedirectToAction("Index"); 
     } 
     return View(message); 
    } 

的视图代码部分:

<form name="registration" action=""> 
      @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
      <div class="form-group"> 
       <label for="Content" >Content:</label> 
       <textarea class="form-control compose_content" rows="5" id="Content" name="content"></textarea> 

        <div class="fileupload"> 
         Attachment : 

         <input id="files" name="files" type="file" multiple /> 
        </div> 
      </div> 
      <button type="submit" class="btn btn-default compose_btn" >Send Message</button> 
     </form> 

我没有与保存文件,并保存对象的问题。 唯一的问题: 文件列表为空。

+0

显示你的'

'元素 –

+0

我补充说,有问题。 –

回答

2

我为了上传文件,您的表单需要包含enctype= multipart/form-data属性。

<form name="registration" action="" enctype= "multipart/form-data"> 

或更好

@using (Html.BeginForm(actionName, controllerName, FormMethod.Post, new { enctype= "multipart/form-data" })) 

我强烈建议你通过一个模型来查看和使用强类型HtmlHelper方法来创建你的模型的属性HTML。

+0

我通过[在]模型IEnumerable ,我只是将我的代码添加到默认的asp代码。和我[使用](Html.BeginForm())。我现在将添加您的代码。 –

+0

谢谢我添加了:enctype =“multipart/form-data”。和:actionName,controllerName,FormMethod.Post,new {enctype =“multipart/form-data”}。全部固定。谢谢 –

相关问题