asp.net上传多个文件

上传一个或者多个文件

需要把form写成这样:

<form method="post" /></span>

<br />

<a href='#' onclick="addFile(10)" ><font color='blue'>增加更多图片</font></a>(每次最多上传10张图片)

<br/>

<asp:Button runat="server" Text="开始上传" height='30px' onclick="btnSave_Click"></asp:Button>

<input type="hidden" />

</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>");

//}