2015-04-08 18 views
0

我試圖上傳一組文件,但是當我通過文件循環時,只有第一個文件被保存,儘管被循環了正確的次數。所以我只能上傳第一個文件,而不是多個文件,如果他們已被選中。C#獲取request.file文件中的所有文件

我有幾個例子中見過的代碼。

 foreach (string fileName in Request.Files) 
     { 
      HttpPostedFileBase file = Request.Files[fileName]; 
      //Save file content goes here 
      fName = file.FileName; 

下面是HTML,

@using (Html.BeginForm("SaveFile", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    <div class="well"> 

     <textarea rows="10" cols="50" class="ListOfFiles" placeholder="No files Chosen"></textarea> 

     <div class="fallback"> 
      <div class="well"> 
       <input name="files" type="file" multiple value="Files" id="ImageFile" /> 
      </div> 
      <input type="submit" value="Save Files" /> 
      @ViewBag.Message 
     </div> 
    </div> 
} 

變量名總是等於「文件」,這是文件輸入標籤的名稱,但如前所述,這永遠只是還給第一文件被選中。如何讓循環正確地遍歷所有文件?

回答

2

有可能您從Request中獲取重複的文件,嘗試通過它們在for循環中枚舉並通過它的索引而不是文件名字符串獲取文件;

for (int i = 0; i < Request.Files.Count; i++) 
{ 
    HttpPostedFileBase currentFile = Request.Files[i]; 
    //do your save etc here 
} 
相關問題