2016-03-24 22 views
3

私は、同じフォームから単一のファイルアップローダーと複数のファイルアップローダーからファイルを取得する必要があります。また、これらのファイルがどの入力フィールドから来るのかを知る必要があります。 From Request.Files私はすべてのファイルを取得できますが、それらのファイルがどのフィールドから来るのか分からない。複数ファイルのアップロードasp.net mvc

私はフォームを持っています。

<form> 
    <input type="file" name="file1"> 
    <input type="file" name="files" multiple="true"> 
</form>` 
+0

... http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/応答のためにそれ – mxmissile

+0

おかげで私が探しているものではありません。私は私の質問を編集しました。 – setu

答えて

5

Request.Filesの代わりにモデルを直接使用してください。これら二つのアップロードコントロールが別の名前を使用して、モデルバインダーは、仕事をさせることができます属性を持っている場合は

public ActionResult Uploade(UploadForm form) 
{ 
    if(form.file1 != null) 
    { 
     //handle file 
    } 

    foreach(var file in form.files) 
    { 
     if(file != null) 
     { 
      //handle file 
     } 
    } 
    ... 
} 
3

:あなたのアクションで

public class UploadForm 
{ 
    public HttpPostedFileBase file1 {get;set;} 

    public IEnumerable<HttpPostedFileBase> files {get;set;} 
} 

そして:あなたはこのような何かを行うことができ、あなたのビューをオフに基づいています。コントローラーアクションのパラメーターは、アップロードコントロールの名前と同じにする必要があります。元のasp.net MVCの作者自身から

public ActionResult Upload(HttpPostedFileBase file1, IEnumerable<HttpPostedFileBase> files) 
{ 
    ... 
} 
関連する問題