多个文件上载重置Request.Files

时间:2013-02-24 02:57:50

标签: c# asp.net file-upload multifile-uploader

我正在使用asp.net文件上传器控件,但是当用户选择该文件两次时,第一个选择被重置。例如:我选择3个文件,然后在单击“上传”按钮之前,再次单击“浏览”,再选择两个。比我点击上传按钮。如果我调用Resquest.Files,我将只获取最后两个文件。我需要获取所有5个文件。

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

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

3 个答案:

答案 0 :(得分:1)

我不确定你想要达到什么目标,但我认为这是预期的。我想如果你使用上传文件控件多次选择文件,控件只保留最后一个选择,这是默认行为。

答案 1 :(得分:0)

然后你需要多个文件上传器

答案 2 :(得分: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>
&#13;
&#13;
&#13;

用于处理文件上载控件的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