protected void btnAddImage_Click(object sender, EventArgs e)
        {
            if (fudUploadFile.FileName == "")
            {
                Response.Write("请选择要上传的文件");
            }
            else if (fudUploadFile.FileName.Substring(fudUploadFile.FileName.LastIndexOf(".") + 1).CompareTo("jpg") != 0)
            {
                Response.Write("请选择图片文件");
            }
            else if(fudUploadFile.FileBytes.Length > size)
            {
                Response.Write(fudUploadFile.FileBytes.Length);
            }
            else
            {
                files = (List<ImageInfo>)Session[Session_Key_List];
                string name = fudUploadFile.FileName;
                string path_ = fudUploadFile.PostedFile.FileName;
                string path = path_.Substring(0, path_.LastIndexOf("\\") + 1);
                AddFile(new ImageInfo(name, path, "图片路径无效", fudUploadFile));
                Response.Write(path);
                Session[Session_Key_List] = files;
                dlImageView.DataSource = files;
                dlImageView.DataBind();
            }
        }将每个文件作为对象存储到list里,然后用数据绑定,最后遍历list 逐个上传。可以多个传送,而且ie6还可以支持本地预览。但是不能浏览多个同时增加到列表,因为fileupload控件 不能动态实例话,有兴趣一起探讨的可以加我,能够实现多文件浏览,并选择上传。

解决方案 »

  1.   

    可以将每次选择的文件先放于DataTable中(可以在页面上显示于gridView中)
    等需要的文件都选择了 再一次性上传
      

  2.   

    回复3楼我已经用datalist保存了,我想要实现的效果就像qq的多图片上传那样。一次可以选择多个文件,然后上传。
                int count = files.Count;
                string path = Server.MapPath("../images/");
                string fullpath = path + "uploadfile/";
                if (count < 1)
                {
                    Response.Write("没有文件要上传,请添加文件");
                }
                else 
                {
                    //foreach (ImageInfo img in files) 
                    //{
                    //    FileUpload fud = img.UpLoadFile;
                    //    fud.SaveAs(fullpath + fud.FileName);
                    //    files.Remove(img);
                    //}
                    for (int i = 0; i < files.Count; i++) 
                    {
                        FileUpload fud = files[i].UpLoadFile;
                        //string name = fud.FileName;
                        fud.SaveAs(fullpath + files[i].Name);
                    }
                    files.Clear();
                    Session[Session_Key_List] = files;            }
                dlImageView.DataSource = files;
                dlImageView.DataBind();
      

  3.   

    <div>    <table width="600" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="398">        <asp:Label ID="Label1" runat="server" Text="选择文件"></asp:Label>&nbsp;<asp:FileUpload
                ID="fudUploadFile" runat="server"  name="fileBrowser"/>&nbsp;</td>
            <td width="202" align="right"><asp:Button ID="btnAddImage" runat="server" OnClick="btnAddImage_Click" Text="添加图片" />
            
            <asp:Button ID="btnDeleteImage" runat="server" OnClick="btnDeleteImage_Click" Text="删除图片" /></td>
          </tr>
          <tr>
            <td height="200" colspan="2">
    <div class="imageview">
            <asp:DataList ID="dlImageView" runat="server" RepeatColumns="4">
                <ItemTemplate>
                    <div id="DivImages">
                    <asp:Image ID="ibtnSmailImage" AlternateText='<%#Eval("Info") %>' runat="server" ImageUrl='<%#Eval("Path") %>' BorderStyle="Solid" Height="120px" Width="160px"/><br />
                    <br />
                    <asp:Label ID="lblImageName" runat="server" Text=""><%#Eval("Name") %></asp:Label></div>
                </ItemTemplate>
            </asp:DataList></div></td>
          </tr>
          <tr>
            <td colspan="2" align="right"><asp:Button ID="btnUploadFile" runat="server" OnClick="btnUploadFile_Click" Text="全部上传" /></td>
          </tr>
        </table>
        </div>
    已经这么做了
      

  4.   

    添加图片就是把文件添加到list里然后显示在页面,只有点击全部上传的时候才全部上传但是fileupload控件打开的时候只能选择一个文件,我想实现的是可以多选
      

  5.   

    <input type="file"> 也可以实现
      

  6.   

    fileupload控件本质上就是对<input type="file">的封装。
      

  7.   

    fileupload 选择文件以后是一个对象,我发现这个对象不能给里面的属性赋值,因此我开始打算用循环在后台生成多个fileupload对象,然后把图片信息放进去行不通了,现在打算用2进制来实现。