Posted on 2006-04-29 19:46
Kylin Bell 阅读(423)
评论(0) 编辑 收藏 引用
Microsoft .NET Framework 中没有任何内置功能使您可以从一个 ASP.NET 页上载多个文件。然而,只需要少量工作,您就可以像过去使用 .NET 1.x 那样完成此任务。
方法是将 System.IO 类导入到 ASP.NET 页中,然后使用 HttpFileCollection 类捕获通过 Request 对象发送来的所有文件。该方法使您可以从一个页面上载所需数量的文件。
protected void Button1_Click(object sender, EventArgs e)
{
string filepath = "C:\\Uploads";
HttpFileCollection uploadedFiles = Request.Files;
for (int i = 0; i < uploadedFiles.Count; i++)
{
HttpPostedFile userPostedFile = uploadedFiles[i];
try
{
if (userPostedFile.ContentLength > 0 )
{
Label1.Text += "File #" + (i+1) + "";
Label1.Text += "File Content Type: " + userPostedFile.ContentType + "";
Label1.Text += "File Size: " + userPostedFile.ContentLength + "kb";
Label1.Text += "File Name: " + userPostedFile.FileName + "";
userPostedFile.SaveAs(filepath + "\\" + System.IO.Path.GetFileName(userPostedFile.FileName));
Label1.Text += "Location where saved: " +
filepath + "\\" +
System.IO.Path.GetFileName(userPostedFile.FileName) + "";
}
}
catch (Exception Ex)
{
Label1.Text += "Error: " + Ex.Message;
}
}
}
在网页上动态生成控件的方法如下:
<SCRIPT language=JavaScript>
function addFile()
{
var str = '<INPUT type="file" size="50" NAME="File">'
document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)
}
</SCRIPT>
<P id="MyFile"><INPUT type=file size=50 name=File></P>
<INPUT onclick=addFile() type="button" value="增加">
<asp:button id=UploadButton text="开始上传" runat="server"></asp:button>