最近公司做东西要求上传的地方有点多,所以现在想写点关于上传的东西。
最近在网上看到一个朋友的视频教程,使用FileUpload实现多个文件同时上传的例子,感觉他的方法比较简单,所以就想写下来供需要的朋友使用。下面就是主要的界面,大家可以参考一下。下面我们来解释他的实现方法:
首先我们看一下界面,开始界面上有个Panel1,里面有个FileUpload控件,然后在Panel1外面有个TextBox控件,一个Button按钮,用来实现增加FileUpload控件的,还有一个Button按钮是用来实现上传功能的。看一些界面源文件:
<
asp:Panel ID
=
"
Panel1
"
runat
=
"
server
"
Height
=
"
50px
"
Width
=
"
302px
"
>
< asp:FileUpload ID = " ful " runat = " server " />
< input id = " File1 " runat = " server " type = " file " /></ asp:Panel >
</ div >
< asp:TextBox ID = " textSum " runat = " server " Width = " 63px " ></ asp:TextBox >
< asp:Button ID = " AddBtn " runat = " server " OnClick = " AddBtn_Click " Text = " 增加 " />
< asp:Button ID = " FileUploadBtn " runat = " server " OnClick = " FileUploadBtn_Click " Text = " 全部上传 " />
界面设计好以后看一下后台的代码怎么写的,其实后台的代码是很简单的,先看看怎么生成多的FileUpload控件的。
< asp:FileUpload ID = " ful " runat = " server " />
< input id = " File1 " runat = " server " type = " file " /></ asp:Panel >
</ div >
< asp:TextBox ID = " textSum " runat = " server " Width = " 63px " ></ asp:TextBox >
< asp:Button ID = " AddBtn " runat = " server " OnClick = " AddBtn_Click " Text = " 增加 " />
< asp:Button ID = " FileUploadBtn " runat = " server " OnClick = " FileUploadBtn_Click " Text = " 全部上传 " />
protected
void
AddBtn_Click(
object
sender, EventArgs e)
{
System.Web.UI.WebControls.FileUpload fu;
int sum =Convert.ToInt32(textSum.Text);
for (int i = 0; i < sum; i++)
{
fu = new System.Web.UI.WebControls.FileUpload();
fu.ID = "fu_" + i.ToString();
//fu.file
Panel1.Controls.Add(fu);
}
}
控件生成以后就要实现上传的功能了,上传的功能也是很简单的,大家看一下:
{
System.Web.UI.WebControls.FileUpload fu;
int sum =Convert.ToInt32(textSum.Text);
for (int i = 0; i < sum; i++)
{
fu = new System.Web.UI.WebControls.FileUpload();
fu.ID = "fu_" + i.ToString();
//fu.file
Panel1.Controls.Add(fu);
}
}
protected
void
FileUploadBtn_Click(
object
sender, EventArgs e)
{
string f_name, f_size, f_type;
HttpFileCollection hfc = Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
f_name = hpf.FileName;
f_size = hpf.ContentLength.ToString();
f_type = hpf.ContentType;
string filename = System.IO.Path.GetFileName(f_name);
hpf.SaveAs(@"E:/fileupload/"+filename);
Response.Write("<br>" + f_name + "<br>" + f_size + "<br>" + f_type);
}
}
{
string f_name, f_size, f_type;
HttpFileCollection hfc = Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
f_name = hpf.FileName;
f_size = hpf.ContentLength.ToString();
f_type = hpf.ContentType;
string filename = System.IO.Path.GetFileName(f_name);
hpf.SaveAs(@"E:/fileupload/"+filename);
Response.Write("<br>" + f_name + "<br>" + f_size + "<br>" + f_type);
}
}
好了,这样就可以实现多个文件同时上传了。
注意:这里因为是作为例子来弄的,对于一些界面的控制和一些对用户输入的控制都没有写出来。如果具体使用的话自己根据具体情况添加一些控件即可。