2013-02-24 60 views
0

我正在使用一個asp.net文件上傳程序控件,但是當用戶選擇文件兩次,第一個selecion被重置。例如:我選擇3個文件,在點擊上傳按鈕之前,我再次點擊「瀏覽」,然後再選擇兩個文件。比我點擊上傳按鈕。如果我打電話Resquest.Files,我只會得到最後兩個文件。我需要獲得所有5個文件。多文件上傳重置Request.Files

WebForm1.aspx的: http://pastebin.com/kkpUA3dr

WebForm1.aspx.cs中:http://pastebin.com/N9ahyU8c

+0

聽起來像在按預期運行。您是否要在更改選定文件之前回傳? – 2013-02-24 03:04:48

+0

我想要的是:如果用戶選擇兩個文件,並在點擊上傳按鈕之前選擇另外三個我想擁有所有5個文件,明白了嗎? – user2013107 2013-02-24 03:09:51

回答

1

我不知道你想達到什麼樣的,但我認爲預期。我猜如果你使用上傳文件控制多次選擇這些文件,控件只會保留最後一個選擇是默認行爲。

+0

是的,這就是我所說的,有什麼辦法可以保留所有的選擇? – user2013107 2013-02-24 03:12:32

0

然後,你需要多文件上傳

+0

我正在使用這個,看代碼。 – user2013107 2013-02-24 04:55:54

0

asp:FileUpload不支持你這樣做。在這種情況下,您可以使用其他庫來上傳多個文件。 HTML:

<html > 
 
<head runat="server"> 
 
    <title>Multiple file Upload</title> 
 
    <script src="http://jquery-multifile-plugin.googlecode.com/svn/trunk/jquery.js" 
 
    type="text/javascript"></script> 
 
    <script src="http://jquery-multifile-plugin.googlecode.com/svn/trunk/jquery.MultiFile.js" 
 
    type="text/javascript"></script> 
 
</head> 
 
<body> 
 
    <form id="form1" runat="server"> 
 
    <div> 
 
    
 
     <asp:FileUpload ID="FileUploadJquery" runat="server" 
 
     class="multi" accept="jpg|png" /> 
 
    
 
    </div> 
 
    </form> 
 
</body> 
 
</html>

C#代碼來處理文件上傳控制:

string fileName1 = ""; 
string FullName1 = ""; 
HttpFileCollection uploads = Request.Files; 
//for (int fileCount = 0; fileCount < uploads.Count; fileCount++) 
for (int fileCount = 1; fileCount < 6; fileCount++) 
{ 
    if (fileCount < uploads.Count) 
    { 
     HttpPostedFile uploadedFile = uploads[fileCount]; 
     fileName1 = Path.GetFileName(uploadedFile.FileName); 
     if (uploadedFile.ContentLength > 0) 
     { 
      string[] a = new string[1]; 
      a = uploadedFile.FileName.Split('.'); 
      fileName1 = a.GetValue(0).ToString() + 
      "." + a.GetValue(1).ToString(); 
      uploadedFile.SaveAs(Server.MapPath 
      ("mobile_image/mob_img/" + fileName1)); 
     } 
} 

來源:http://www.codeproject.com/Tips/531692/Multiple-File-Upload-Using-jQuery