ASP.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">
????????var?cbMgr =?new?HttpUploaderMgr();
??????? 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?() {
????????????????var?path = $("#filePath").val();
??????????????? cbMgr.app.addFile({ pathLoc: path });
??????????? });
????????????//上傳指定目錄
??????????? $("#btnUpFd").click(function?() {
????????????????var?path = $("#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"/>
????????<inputid="btnUpF"type="button"value="上傳本地文件"/>
????</p>
????<p>
????????目錄路徑:<inputid="folderPath"type="text"size="50"value="C:\\Users\\Administrator\\Desktop\\test"/>
????????<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>?
???????????public??class? Upload??:? System.Web.UI.Page?
???????????{?
???????????????????????protected? System.Web.UI.WebControls.Button? UploadButton;?
???????????????????????protected? System.Web.UI.WebControls.Label? strStatus;?
?
???????????????????????private??void? 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();?
???????????????????????????????????????????????return??true;?
???????????????????????????????????}?
???????????????????????????????????catch(System.Exception? Ex)?
???????????????????????????????????{?
?????????????????????????????????????????????? strStatus.Text??=? Ex.Message;?
???????????????????????????????????????????????return??false;?
???????????????????????????????????}?
???????????????????????}?
???????????????????????#region? Web??窗體設計器生成的代碼?
???????????????????????override??protected??void? OnInit(EventArgs? e)?
???????????????????????{?
???????????????????????????????????//?
???????????????????????????????????//? CODEGEN:??該調用是? ASP.NET? Web? 窗體設計器所必需的。?
???????????????????????????????????//?
?????????????????????????????????? InitializeComponent();?
???????????????????????????????????base.OnInit(e);?
???????????????????????}?
?
???????????????????????///? <summary>?
???????????????????????///??設計器支持所需的方法? -? 不要使用代碼編輯器修改?
???????????????????????///??此方法的內容。?
???????????????????????///? </summary>?
???????????????????????private??void? 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超大文件上傳與下載/
總結
以上是生活随笔為你收集整理的ASP.NET文件的上传和下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于网络安全法规
- 下一篇: C# manifest文件介绍