1. 程式人生 > WINDOWS開發 >C#.NET資料夾上傳解決方案

C#.NET資料夾上傳解決方案

HTML部分

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx.cs"Inherits="up6.index"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=gb2312"/>

<title>up6-多標籤演示頁面</title>

<linkhref="js/up6.css"type="text/css"rel="Stylesheet"charset="gb2312"/>

<scripttype="text/javascript"src="js/jquery-1.4.min.js"></script>

<scripttype="text/javascript"src="js/json2.min.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/up6.config.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/up6.app.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/up6.edge.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/up6.file.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/up6.folder.js"charset="utf-8"></script>

<scripttype="text/javascript"src="js/up6.js"charset="utf-8"></script>

<scriptlanguage="javascript"type="text/javascript">

varcbMgr =newHttpUploaderMgr();

cbMgr.event.md5Complete =function(obj,md5) {/*alert(md5);*/};

cbMgr.event.fileComplete =function(obj) {/*alert(obj.fileSvr.pathSvr);*/};

cbMgr.event.queueComplete =function() { $(document.body).append("佇列完成<br/>"); }

cbMgr.event.addFdError =function(jv) { alert("本地路徑不存在:"+ jv.path); };

cbMgr.event.scanComplete =function(obj) {/*alert(obj.folderSvr.pathLoc);*/};

cbMgr.Config["Cookie"] =‘ASP.NET_SessionId=<%=Session.SessionID%>‘;

cbMgr.Config.Fields["uid"] = 0;

$(function()

{

cbMgr.load_to("FilePanel");

//上傳指定檔案

$("#btnUpF").click(function() {

varpath = $("#filePath").val();

cbMgr.app.addFile({ pathLoc: path });

});

//上傳指定目錄

$("#btnUpFd").click(function() {

varpath = $("#folderPath").val();

cbMgr.app.addFolder({ pathLoc: path });

});

});

</script>

</head>

<body>

<p>up6多標籤上傳演示頁面</p>

<p><ahref="db/clear.aspx"target="_blank">清空資料庫</a></p>

<p><ahref="filemgr/index.aspx"target="_blank">檔案管理器演示</a></p>

<p><ahref="index2.aspx"target="_blank">單面板演示</a></p>

<p><ahref="down2/index.htm"target="_blank">開啟下載頁面</a></p>

<p><ahref="index-single.htm"target="_blank">單檔案上傳演示</a></p>

<p>

檔案路徑:<inputid="filePath"type="text"size="50"value="D:\\360safe-inst.exe"/>&nbsp;

<inputid="btnUpF"type="button"value="上傳本地檔案"/>

</p>

<p>

目錄路徑:<inputid="folderPath"type="text"size="50"value="C:\\Users\\Administrator\\Desktop\\test"/>&nbsp;

<inputid="btnUpFd"type="button"value="上傳本地目錄"/>

</p>

<divid="FilePanel"></div>

<divid="msg"></div>

</body>

</html>

程式碼部分

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;

namespace WebPortal

{

/// <summary>

/// UpLoad的摘要說明。

///實現多檔案上傳

/// </summary>

publicclass Upload: System.Web.UI.Page

{

protected System.Web.UI.WebControls.Button UploadButton;

protected System.Web.UI.WebControls.Label strStatus;

privatevoid Page_Load(object sender,System.EventArgs e)

{

///在此處放置使用者程式碼以初始化頁面

if(this.IsPostBack)this.SaveImages();

}

private Boolean SaveImages()

{

///‘遍歷File表單元素

HttpFileCollection files= HttpContext.Current.Request.Files;

/// ‘狀態資訊

System.Text.StringBuilder strMsg=new System.Text.StringBuilder();

strMsg.Append("上傳的檔案分別是:<hr color=red>");

try

{

for(int iFile= 0; iFile< files.Count; iFile++)

{

///‘檢查副檔名字

HttpPostedFile postedFile= files[iFile];

string fileName,fileExtension;

fileName= System.IO.Path.GetFileName(postedFile.FileName);

if(fileName!="")

{

fileExtension= System.IO.Path.GetExtension(fileName);

strMsg.Append("上傳的檔案型別:"+ postedFile.ContentType.ToString()+"<br>");

strMsg.Append("客戶端檔案地址:"+ postedFile.FileName+"<br>");

strMsg.Append("上傳檔案的檔名:"+ fileName+"<br>");

strMsg.Append("上傳檔案的副檔名:"+ fileExtension+"<br><hr>");

///‘可根據副檔名字的不同儲存到不同的資料夾

///注意:可能要修改你的資料夾的匿名寫入許可權。

postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/")+ fileName);

}

}

strStatus.Text= strMsg.ToString();

returntrue;

}

catch(System.Exception Ex)

{

strStatus.Text= Ex.Message;

returnfalse;

}

}

#region Web窗體設計器生成的程式碼

overrideprotectedvoid OnInit(EventArgs e)

{

//

// CODEGEN:該呼叫是 ASP.NET Web 窗體設計器所必需的。

//

InitializeComponent();

base.OnInit(e);

}

/// <summary>

///設計器支援所需的方法 - 不要使用程式碼編輯器修改

///此方法的內容。

/// </summary>

privatevoid InitializeComponent()

{

this.ID="Upload";

this.Load+=new System.EventHandler(this.Page_Load);

}

#endregion

}

}

選擇資料夾

技術分享圖片

js部分

技術分享圖片

後端程式碼邏輯大部分是相同的,目前能夠支援MySQL,Oracle,SQL。在使用前需要配置一下資料庫,可以參考我寫的這篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大檔案上傳與下載/

歡迎入群一起討論:374992201