您的位置:首页 > 其它

实现用File控件同时上传多个文件

2007-08-20 11:19 288 查看
File控件是一个必须结合服务器端功能才能实现的纯客户端控件。

要使得文件上载能够成功,要做到以下几点:

INPUT type=file 元素必须出现在 FORM 元素内。

必须为 INPUT type=file 元素指定 NAME 标签属性的值。

FORM 元素 METHOD 标签属性的值必须设置为 post。

FORM 元素 ENCTYPE 标签属性的值必须设置为 multipart/form-data。

要处理上载到服务器的文件,服务器端进程必须可以处理 multipart/form-data 的提交。例如,Microsoft Posting Acceptor 能够允许 Microsoft Internet Information Server (IIS) 接受文件上载。而在网上也可找到其它的 Common Gateway Interface (CGI) 脚本用于处理 multipart/form-data 提交。

用户选择要上载的文件并提交页面后,该文件作为请求的一部分上载。文件将被完整地缓存在服务器内存中。

File控件一次只能上传一个文件,并且其文件属性值都是只读的。采用File控件同时上传多个文件,实际上是动态生成多个File控件,每选择上传一个文件,隐藏该控件,生成另一个File控件。这里只需要简单的javascript技巧既可以实现,所以不做赘述。

以ASP.NET为例,介绍在服务器端所需要进行的处理。

//获取上传文件列表

HttpFileCollection fileCollection = HttpContext.Current.Request.Files;

//逐个上传每个文件
for (int index = 0; index < HttpContext.Current.Request.Files.Count; index++)
{
HttpPostedFile postedFile = HttpContext.Current.Request.Files[index];
filename = postedFile.FileName;
if (postedFile.FileName != "")
{
postedFile.SaveAs(uploadPath);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: