2013-03-15 67 views
0

這個元素,上傳一個按鈕多個文件點擊

<asp:FileUpload ID="FileUploadEventosCasal" runat="server" /> 

可以上傳一個文件的時間(點擊按鈕)。

我想知道如何用一個按鈕單擊來上傳多個文件(排隊)。 我無法使用.net 4.5。我想是這樣的例子:http://www.aspdotnet-suresh.com/2012/12/aspnet-upload-multiple-files-using.html要使它工作,我做了這些變化:

<script src="js/jquery-1.8.2.js"></script> 
<script>$(function() {/* jquery.MultiFile.js code pasted here */});</script> 

<asp:FileUpload ID="FileUploadEventosCasal" CssClass:"multi" runat="server" /> 

但這種改變只是運行。當我嘗試上傳時,它不起作用。這裏是按鈕事件:

protected void ButtonInsMultipleUpload_Click(object sender, EventArgs e) 
{ 
    HttpFileCollection fileCollection = Request.Files; 
    List<byte[]> imgs = new List<byte[]>(); 
    for (int i = 0; i < fileCollection.Count; i++) 
    { 
     HttpPostedFile uploadfile = fileCollection[i]; 
     imgs.Add(new byte[uploadfile.InputStream.Length]); 
     uploadfile.InputStream.Read(imgs[i], 0, imgs[i].Length); 
    } 
} 
+1

搜索[Google](https://www.google.com/search?q=asp+file+upload+multiple+files&aq=0&oq=asp+file+upload+mult&aqs=chrome.1.57j0l3j60j62.3303&sourceid=chrome&ie = UTF-8) – Dom 2013-03-15 16:42:50

+0

我找到了3個解決方案。 2沒有工作(都使用jquery),另一個是.net 4.5 – 2013-03-15 16:45:29

+0

然後在你的問題(與鏈接)中提供。更多信息,更好。 – Dom 2013-03-15 16:46:15

回答

1

我發現我的錯誤。在按鈕點擊方法我做了這個變化:

HttpFileCollection fileCollection = Request.Files; 
List<byte[]> imgs = new List<byte[]>(); 
for (int i = 0; i < fileCollection.Count; i++) 
{ 
    HttpPostedFile uploadfile = fileCollection[i]; 
    byte[] imageBytes = new byte[uploadfile.InputStream.Length]; 
    uploadfile.InputStream.Read(imageBytes, 0, imageBytes.Length); 
    if(imageBytes.Length > 0) 
     imgs.Add(imageBytes); 
} 

感謝您的幫助!

1

關閉我的頭頂?我會看看像plupload

你可以選擇多個文件,它支持分塊...是的,你可能需要做的不僅僅是在頁面上放置一個控件,但你會有更多的控制和更好的體驗。

檢查examples

+0

這很有用,但它不完全是我正在尋找的...... – 2013-03-15 17:23:09

1

在ASP.NET 4.5 FileUpload控件支持上傳多個文件:

<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" /> 
+0

是的,但我不能使用4.5。 我正在使用的服務器不支持。 – 2013-03-15 16:53:58