上传多个文件,效果图如下:
前台代码和JavaScript脚本:
<mce:script type="text/javascript"><!--
function AddFile()
{
var strFile='<input name="File1" type="file" /></br>';
document.getElementById("DivFile").insertAdjacentHTML("beforeEnd",strFile);
}
// --></mce:script>
<div id="DivFile">
<input id="File1" type="file" />
</div>
<input id="BtnAddFile" type="button" value="添加附件" onclick="javascript:AddFile()" />
后台处理代码:
protected void BtnUpFiles_Click(object sender, EventArgs e)
{
StringBuilder strMessage = new StringBuilder();
//HttpFileCollection: 提供对客户端上载文件的访问,并组织这些文件。
HttpFileCollection Files = HttpContext.Current.Request.Files;
for (int i = 0; i < Files.Count;i++ )
{
//HttpPostedFile: 提供对客户端已上载的单独文件的访问。
HttpPostedFile PostedFile = Files[i];
if (PostedFile.ContentLength>0)
{
string FileName = PostedFile.FileName;
string strExPrentFile = FileName.Substring(FileName.LastIndexOf(".") + 1);//获取文件后缀名;
string[] NoExPrentFile = new string[] { "exe", "asp", "php" };
bool IsUp = true;
//过滤文件格式。
for (int j = 0; j < NoExPrentFile.Length; j++)
{
if (strExPrentFile.Equals(NoExPrentFile[j]))
{
IsUp = false;
}
}
if (IsUp)//如果格式正确;
{
//构成文件路径:(文件名(由时间格式生成)+后缀名)
string sFilePath = string.Format("files/{0}.{1}", DateTime.Now.ToString("mmhhddss"), strExPrentFile);
PostedFile.SaveAs(Server.MapPath(sFilePath));
strMessage.Append("文件上传成功!");
strMessage.Append(string.Format("{0}.{1}", DateTime.Now.ToString("mmhhddss"), strExPrentFile));
strMessage.Append("<br />");
strMessage.Append("文件的格式:");
strMessage.Append(strExPrentFile);
strMessage.Append("<br />```````````````<br />");
//this.LabMessage.Text = "文件上传成功!" + "<br />文件名是:" + string.Format("{0}.{1}", DateTime.Now.ToString("mmhhddss"), strExPrentFile) + "<br />文件的格式:" + strExPrentFile;
}
else
{
this.LabMessage.Text = string.Format("不允许上传{0}格式文件", NoExPrentFile);
}
}
else
{
this.LabMessage.Text = "不能上传空文件";
}
}
this.LabMessage.Text = strMessage.ToString();
}