ASP.NET多文件上传方案

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
if (!Page.IsPostBack)//首次执行页面
        {
            SFUPC();
//页面执行一次将上传文件控件集到缓存中
        }
        
    }
    
protected void Button1_Click(object sender, EventArgs e)
    {
        UpFile();
//执行上传文件
    }
    
protected void Button2_Click(object sender, EventArgs e)
    {
        InsertC();
//执行添加控件方法
    }
    
private void SFUPC()//该方法用于保存当前页面上传文件控件集到缓存中
    {
        ArrayList AL 
= new ArrayList();//创建动态增加数组
        foreach (Control C in F.Controls)
        {
            
if (C.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")
            {
                HtmlTableCell HTC 
= (HtmlTableCell)C.Controls[0];
                
foreach (Control FUC in HTC.Controls)
                {
                    
if (FUC.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")
                    {
                        FileUpload FU 
= (FileUpload)FUC;
                        AL.Add(FU);
                    }
                }
            }
        }
        Session.Add(
"FilesControls", AL);
    }
    
private void InsertC()//该方法用于添加一个上传文件的控件
    {
        ArrayList AL 
= new ArrayList();
        
this.F.Rows.Clear();
        GetInfo();
        HtmlTableRow HTR 
= new HtmlTableRow();
        HtmlTableCell HTC 
= new HtmlTableCell();
        HTC.Controls.Add(
new FileUpload());
        HTR.Controls.Add(HTC);
        F.Rows.Add(HTR);
        SFUPC();
    }
    
private void GetInfo()//该方法用于读取缓存中存储的上传文件控件集
    {
        ArrayList AL 
= new ArrayList();
        
if (Session["FilesControls"!= null)
        {
            AL 
= (System.Collections.ArrayList)Session["FilesControls"];
            
for (int i = 0; i < AL.Count; i++)
            {
                HtmlTableRow HTR 
= new HtmlTableRow();
                HtmlTableCell HTC 
= new HtmlTableCell();
                HTC.Controls.Add((System.Web.UI.WebControls.FileUpload)AL[i]);
                HTR.Controls.Add(HTC);
                F.Rows.Add(HTR);
            }
        }
    }
    
private void UpFile()//该方法用于执行文件上传操作
    {
       
        
if (FileUpload1.PostedFile.FileName == "")
            {
                Response.Write(
"<script language=javascript>alert('上传文件不能为空!')</script>");
                
return;
            }
            
else
            {
                
string FilePath = Server.MapPath("./"+ "Files";
                HttpFileCollection HFC 
= Request.Files;
                
for (int i = 0; i < HFC.Count; i++)
                {
                    HttpPostedFile UserHPF 
= HFC[i];
                    
try
                    {
                        
if (UserHPF.ContentLength > 0)
                        {
                            UserHPF.SaveAs(FilePath 
+ "\\" + System.IO.Path.GetFileName(UserHPF.FileName));
                            SqlConnection con 
= new SqlConnection("server=(local);user id=sa;pwd=;Database=mrdb");
                            con.Open();
                            
string str = "select count(*) from tb_files where name='" + System.IO.Path.GetFileName(UserHPF.FileName) + "'";
                            SqlCommand mycom 
= new SqlCommand(str, con);
                            
int intcont = Convert.ToInt32(mycom.ExecuteScalar());
                            
if (intcont > 0)
                            {
                                Response.Write(
"<script language=javascript>alert('对不起!不允许上传相同记录!')</script>");
                                
return;
                            }
                            
else
                            {
                                SqlCommand com 
= new SqlCommand("INSERT INTO tb_files(name,fileload)values('" + System.IO.Path.GetFileName(UserHPF.FileName) + "','" + FilePath + "')", con);
                                com.ExecuteNonQuery();
                            }
                        }
                    }
                    
catch (Exception ex)
                    {
                        Response.Write(ex.Message.ToString());
                    }
                }
            }
            
if (Session["FilesControls"!= null)
            {
                Session.Remove(
"FilesControls");
            }
            Response.Write(
"<script language=javascript>alert('上传成功!');location='InFo.aspx'</script>");
        }
    
protected void Button3_Click(object sender, EventArgs e)
    {
        Response.Redirect(
"InFo.aspx");
    }
}

转载于:https://www.cnblogs.com/hubcarl/archive/2009/06/24/1510103.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值