asp.net上传多个文件

上传一个或者多个文件

需要把form写成这样:

 <form method="post" id="form1" onsubmit="/*postForm();return false;*/" action="Default.aspx" style="margin:0px;" runat="server" enctype="multipart/form-data">
     选择上传图片:
     <br />
     <span id="FileList"><input type="file"  size="50" name="File"  /></span>
    <br />

     <a href='#' onclick="addFile(10)" ><font color='blue'>增加更多图片</font></a>(每次最多上传10张图片)
     <br/>
    
        <asp:Button ID="btnSave" runat="server" Text="开始上传" height='30px' onclick="btnSave_Click"></asp:Button>
        <input type="hidden" id="DelID" name="DelID" />
      </form>

 

 

<script type="text/javascript" language="javascript">

 

    function addFile(max)
    {
        var file = document.getElementsByName("File");
        if (file.length < max) {
            var filebutton = '<br /><input type="file" size="50" name="File"  />';
            document.getElementById('FileList').insertAdjacentHTML("beforeEnd", filebutton);

         
        }
        else {
          alert('每次最多上传' + max + '张图片')
        }
    }
</script>

其中, document.getElementById('FileList').insertAdjacentHTML("beforeEnd", filebutton);

也可以写成:
            document.getElementById('FileList').innerHTML += filebutton

 

注意不能少enctype="multipart/form-data",否则后台取不到文件

后台:

 

int uploadcount = 0;

            try
            {
                ///获取上载文件的列表
                HttpFileCollection fileList = HttpContext.Current.Request.Files;
                if (fileList == null) return;

                ///上载文件列表中的每一个文件
                for (int i = 0; i < fileList.Count; i++)
                {   ///获取当前上载的文件
                    HttpPostedFile postedFile = fileList[i];
                    if (postedFile == null)
                    {
                        continue;
                    }

                    ///获取上载文件的文件名称
                    String fileExt = (System.IO.Path.GetExtension(postedFile.FileName)).ToString().ToLower();
                    String strImageName = "pictures\\" + System.Guid.NewGuid().ToString();

                    if (string.IsNullOrEmpty(fileExt) == true)
                    {
                        continue;
                    }


                  

                    //保存上传图片到服务器
                    postedFile.SaveAs(Server.MapPath(strImageName + fileExt));

                    (new Picture()).UploadPicture("", strImageName + fileExt);
                    uploadcount++;

                }

                if (uploadcount>0)
                {
                    Response.Redirect("UploadSucceed.aspx?succeed=true");
                }
                else
                {
                    Response.Write("<script language=javascript>alert(\'系统提示:请选择文件!\');</script>");
                }

               


            }
            catch (Exception ex)
            {
                Response.Write("<script language=javascript>alert(\'系统警告:上传图片失败!\');</script>");

            }

 

如果就上传一个文件,则file元素加上runat='server',也可以直接在后台访问:

 


            ////获取图片文件扩展名
            //String fileExt = (System.IO.Path.GetExtension(fileImage.PostedFile.FileName)).ToString().ToLower();
            //String strImageName = "pictures\\" + System.Guid.NewGuid().ToString();
            //try
            //{
            //   if (fileImage.PostedFile.ContentLength != 0) //判断选取对话框选取的文件长度是否为0
            //    {
            //        //保存上传图片到服务器
            //        fileImage.PostedFile.SaveAs(Server.MapPath(strImageName + fileExt));
       
            //        (new Picture()).UploadPicture("", strImageName + fileExt);
            //        Response.Redirect("UploadSucceed.aspx?succeed=true");
            //    }
            //    else
            //    {
            //        Response.Write("<script language=javascript>alert(\'系统提示:请选择文件!\');</script>");
            //    }


            //}
            //catch (Exception ex)
            //{
            //    Response.Write("<script language=javascript>alert(\'系统警告:上传图片失败!\');</script>");
          
            //}

 

 

posted on 2010-03-24 14:15  优雅小猪  阅读(2144)  评论(2编辑  收藏  举报

导航