0

MVC 3 で Uploadify を使用して複数のファイルをアップロードする際に問題があります。3 つのファイルを選択し、ajax 経由で投稿します。コントローラーでファイルを取得しましたが、問題があります。1 回の投稿で 3 つのファイルを取得する代わりに、コントローラーが 3 つのファイルに対して 3 回ヒットすることがわかります。

コントローラーで 3 つのファイルすべてを 1 つの投稿で使用できるようにします。

これは可能ですか?

[HttpPost]
public ActionResult UploadFiles()
{
   //This always shows one file i debug mode
   foreach (string fileName in Request.Files)
   {

   }
}

ファイルを一発で加工して一発で保存したい。

4

1 に答える 1

2

Uploadify についてはわかりませんが、複数のファイルを 1 つずつアップロードする場合は、標準のフォームを使用します。

意見:

@using (Html.BeginForm("YourAction","YourController",FormMethod.Post,new { enctype="multipart/form-data"})) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Message</legend>           
         //your html here

          //as many input types you would like but they 
         //must have a same name attribute (files) 
          <input type="file" name="files"/> 
    </fieldset>

コントローラ:

[HttpPost]
public ActionResult YourAction(FormCollection values, IEnumerable<HttpPostedFileBase> files)
{
    //do what you want with form values then for files
    foreach (var file in files)
    {
      if (file.ContentLength > 0)
      {
         byte[] fileData = new byte[file.ContentLength];
         file.InputStream.Read(fileData, 0, file.ContentLength);
         //do what you want with fileData
       }
     }
}

したがって、単一のファイルIEnumerable<HttpPostedFileBase> filesに対して複数のファイルに使用HttpPostedFileBase fileし、ビューの入力を次のように変更します

<input type="file" name="file"/>

よろしく。

于 2012-04-06T06:24:23.127 に答える