随笔-37  评论-155  文章-1  trackbacks-3

        最近公司做东西要求上传的地方有点多,所以现在想写点关于上传的东西。
        最近在网上看到一个朋友的视频教程,使用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控件的。
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);
        }

    }
控件生成以后就要实现上传的功能了,上传的功能也是很简单的,大家看一下:
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);
        }

    }

好了,这样就可以实现多个文件同时上传了。


注意:这里因为是作为例子来弄的,对于一些界面的控制和一些对用户输入的控制都没有写出来。如果具体使用的话自己根据具体情况添加一些控件即可。
posted on 2007-05-15 16:49 Edwin dong 阅读(1007) 评论(3)  编辑 收藏 网摘 所属分类: asp.net

评论:
#1楼  2007-05-23 08:21 | asp.net [未注册用户]
确实挺简单的
  回复  引用    
#2楼 [楼主] 2007-05-31 11:00 | Edwin dong      
昨天有个朋友看到我的这篇文章后提出来一个问题,最后结果是因为他的开发环境是2003的原因,因为我上面的代码都是在2005下测试过的,没有在2003下测试过,所以可能会出些版本不兼容的问题,希望以后的朋友在遇到相同的问题可以知道原因所在。
  回复  引用  查看    
#3楼  2008-03-11 09:23 | 苏源 [未注册用户]
我想问下,我把多个文件上传上去,但是我又想提供多个文件的的下载,
单个文件我可以把文件名在上传单个文件时写入数据库中,通过数据库中
的文件名来提供相应的文件下载,现在文件多了,请我我怎么写入数据库,
怎么样提供多文件下载?
谢谢~!!
  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-05-15 16:55 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: