C# 多文件同时上传

本文详细介绍了如何使用C#进行多文件的同时上传操作,重点解析了关键代码,涉及异常处理和UI交互元素如div、button的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML

特别要注意的是这行代码

 

< form  id ="Form1"  method ="post"  runat ="server"  enctype ="multipart/form-data" >

 

<% @ Page language="c#" Codebehind="MultiFileUp.aspx.cs" AutoEventWireup="false" Inherits="Vista.Project.MultiFileUp"  %>
<% @ Register TagPrefix="uc1" TagName="pageHead" Src="../Head/pageHead.ascx"  %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
< HTML >
    
< HEAD >
        
< title > MultiFileUp </ title >
        
< script  lang ="JavaScript" >
        
function addFile()
        
{
         
var str = '<input type="file" size="50" Name="File">'
         document.getElementById(
'MyFile').insertAdjacentHTML("beforeEnd",str)
        }
        
        
</ script >
        
< meta  name ="GENERATOR"  Content ="Microsoft Visual Studio .NET 7.1" >
        
< meta  name ="CODE_LANGUAGE"  Content ="C#" >
        
< meta  name ="vs_defaultClientScript"  content ="JavaScript" >
        
< meta  name ="vs_targetSchema"  content ="http://schemas.microsoft.com/intellisense/ie5" >
        
< LINK  href ="../StyleSheet1.css"  type ="text/css"  rel ="stylesheet" >
    
</ HEAD >
    
< body >
        
< form  id ="Form1"  method ="post"  runat ="server"  enctype ="multipart/form-data" >
            
< FONT  face ="宋体" >
                
< P >
                    
< uc1:pageHead  id ="PageHead1"  runat ="server" ></ uc1:pageHead ></ P >
                
< div  class ="tdT" > &nbsp; 多文件同时上载 </ div >
                
< div  class ="divtit"  id ="MyFile" >< INPUT  type ="file"  name ="File"  size ="50" ></ div >
                
< br >
                
< DIV  class ="tdT" > &nbsp;&nbsp;   < INPUT  type ="button"  value ="增加(Add)"  onclick ="addFile()" > &nbsp;&nbsp;&nbsp;
                    
< asp:Button  id ="btUp"  runat ="server"  Text ="开始上载" ></ asp:Button > &nbsp;&nbsp;&nbsp;
                    
< INPUT  type ="button"  value ="重置(ReSet)"  onclick ="this.form.reset()" ></ DIV >
                
< DIV  class ="tdT" > &nbsp; </ DIV >
                
< DIV  class ="tdT" >
                    
< asp:Label  id ="upmessage"  runat ="server" ></ asp:Label ></ DIV >
            
</ FONT >
        
</ form >
    
</ body >
</ HTML >

 

.CS

 

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;
using  System.Text;
using  System.IO;
using  System.Configuration;
using  System.Data.SqlClient;

namespace  Vista.Project
{
    
/// <summary>
    
/// MultiFileUp 的摘要说明。
    
/// </summary>

    public class MultiFileUp : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.Button btUp;
        
private readonly string SQLCONNECTIONSTRING = ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"].ToString();
        
protected System.Web.UI.WebControls.Label upmessage;

    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
        }


        
private void GetupFile(string iUrl)
        
{
            SqlConnection conn 
= new SqlConnection(SQLCONNECTIONSTRING);
            
string strCom = "insert into UpFile (FileUrl) values ('" + iUrl +"')";
            SqlCommand comm 
= new SqlCommand(strCom,conn);
            
//定义访问数据库的类型为存储过程
            try { conn.Open();}
            
catch (Exception ex){throw new Exception("数据库连接失败!",ex);}

            
try { comm.ExecuteNonQuery();}
            
catch (Exception ex){throw new Exception("数据库连接失败!",ex);}
            }


        
private void MultiFileUpload()
        
{
            HttpFileCollection fileList 
= HttpContext.Current.Request.Files;
            
//存放上载文件的操作消息
            StringBuilder uploadMessage = new StringBuilder("当前上载的文件分别是:<hr color=red>");
            
int fileIndex = 0;

            
try 
            
{
                
for (fileIndex = 0;fileIndex < fileList.Count;fileIndex++)
                
{
                    
//获取当前上载的文件
                    HttpPostedFile postedFile = fileList[fileIndex];
                    
string fileName;
                    
string fileExtension;

                    
//获取上载文件的文件名称
                    fileName = Path.GetFileName(postedFile.FileName);
                    
if (fileName != null)
                    
{
                        fileExtension 
= Path.GetExtension(fileName);
                        uploadMessage.Append(
"上载的文件类型:"+ postedFile.ContentType.ToString()+"<br>");
                        uploadMessage.Append(
"客户端文件地址:" + postedFile.FileName + "<br>" );
                        uploadMessage.Append(
"上载文件的文件名:" + fileName + "<br>" );
                        uploadMessage.Append(
"上载文件的扩展名:" + fileExtension + "<br>" );
                        postedFile.SaveAs(MapPath(
"Photo/"+ fileName);
                        GetupFile(fileName);
                    }

                }

                upmessage.Text 
= uploadMessage.ToString();
            }

            
catch (Exception ex)
            
{
                upmessage.Text 
= ex.Message;
            }
            
        }


        
Web 窗体设计器生成的代码

        
private void btUp_Click(object sender, System.EventArgs e)
        
{
            MultiFileUpload();
        
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值