亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#遍歷文件夾后上傳文件夾中所有文件錯誤案例分析

2020-01-24 01:25:41
字體:
來源:轉載
供稿:網友

asp.net是沒有直接選取文件夾的控件的,我也不知道,如果大家有的話可以一起交流下。后來我想著應該有三種方法:

①先將文件夾壓縮后上傳服務器,然后再服務器上解壓;

②獲得文件夾名及目錄,然后遍歷文件夾下面的文件以及子文件夾,循環上傳;

③是使用AcitiveX控件。
那我果斷就先通過上傳對話框獲得文件夾名和文件夾所在的系統文件路徑,可是接下來就錯愕了,一開始是想使用javascript遍歷文件夾的

1  var fso = new ActiveXObject("Scripting.FileSystemObject");
2  var f = fso.GetFolder(document.all.fixfolder.value);
3  var fc = new Enumerator(f.files);

  但是發現遍歷不了,才得知要想創建FSO對象,操作文件,必須對該文件要有足夠的權限才行,這樣太麻煩了,于是我采取用C#來遍歷文件夾,通過寫一個ashx文件,在html里通過action將瀏覽的數據傳送過來

以下是C#遍歷文件夾之后上傳文件夾下的所有文件引用片段:

<%@ WebHandler Language="C#" Class="folder" %>  using System; using System.Web; using System.IO;  public class folder : IHttpHandler {   //采用遞歸的方式遍歷,文件夾和子文件中的所有文件。   public void ProcessRequest(HttpContext context)   {     HttpRequest Request = context.Request;     HttpResponse Response = context.Response;     HttpServerUtility Server = context.Server;     //指定輸出頭和編碼     Response.ContentType = "text/html";     Response.Charset = "utf-8";      HttpFileCollection fs = HttpContext.Current.Request.Files;      string newFilePath = Request.Form["sPath"];     if(fs.Count>0)     {       //fs[0]對應FindFile的dirPath就是指定目錄,newFilePath絕對贏svrPath就是目標目錄,也就是服務器上的目錄       FindFile(fs[0].ToString(), newFilePath);     }     Response.Write("<script>parent.FileUploadDeal()</script>");   }   //采用遞歸的方式遍歷,文件夾和子文件中的所有文件。   public void FindFile(string dirPath,string svrPath) //參數dirPath為指定的目錄,svrPath是目標目錄   {     //目標目錄,也就是服務器上的目錄     string sFilePath = System.Web.HttpContext.Current.Server.MapPath(svrPath);     //string sFilePath = System.Web.HttpContext.Current.Server.MapPath(Request.Form["svrPath"]);     //創建文件夾     if (!Directory.Exists(sFilePath))       Directory.CreateDirectory(sFilePath);        //在指定目錄及子目錄下查找文件   DirectoryInfo Dir=new DirectoryInfo(dirPath);   try   {     foreach(DirectoryInfo d in Dir.GetDirectories())//查找子目錄      {       FindFile(Dir+d.ToString()+"http://",svrPath+d.ToString()+"http://");       //FindFile(Dir+d.ToString()+"/",svrPath+d.ToString()+"/");     }     foreach(FileInfo f in Dir.GetFiles()) //查找文件     {       //f.SaveAs(Server.MapPath(svrPath + f.ToString()));//如果要保存到其他地方,注意修改這里       f.CopyTo(System.Web.HttpContext.Current.Server.MapPath(svrPath + f.ToString()), true);       HttpContext.Current.Response.Write("4554132");     }   }   catch(Exception e)   {     ;   }    }    public bool IsReusable   {     get     {       return false;     }   }   }

原本以為這樣就可以達到效果,但是卻發現了一個致命的問題!因為Fileupload控件本身是不支持文件夾的上傳,即使通過ashx也無法賦值給它。通過了解更多資料,得知,由于安全性原因,不可能直接在瀏覽器上通過代碼直接上傳本地文件夾,必須通過ActiveX控件才能實現。
從安全權限來分析,確實也是不允許的,否則我寫一個網頁,里面嵌入這段js代碼,你一打開這個網頁,js就可以開始慢慢的去遍歷你的硬盤,把你的文件都上傳到服務器。只有用戶通過input控件自己選擇的文件,才允許上傳。
本文只是小編進行解決問題的一個思路并不是一個正確的方法,目的在于和大家進行學習交流,獲得更好的解決辦法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品自拍视频在线观看| 亚洲日韩欧美视频一区| 久久久精品国产| 欧美成人精品在线播放| 2019中文字幕在线| 丝袜美腿精品国产二区| 亚洲精品久久久久中文字幕欢迎你| 91精品久久久久久久久久另类| 国产一区二区黑人欧美xxxx| 成人性生交大片免费看视频直播| 久久成人这里只有精品| 国产91精品久久久久久久| 亚洲成人av在线| 国产一区在线播放| 亚洲xxxxx电影| 国产亚洲精品久久久| 亚洲free性xxxx护士白浆| 国产精品久久久久久久久久东京| 大桥未久av一区二区三区| 色av吧综合网| 亚洲加勒比久久88色综合| 欧美伊久线香蕉线新在线| 亚洲人成在线一二| 一区二区日韩精品| 欧美黄色小视频| 色噜噜久久综合伊人一本| 一二美女精品欧洲| 狠狠躁夜夜躁久久躁别揉| 91久久精品美女| 亚洲最大的成人网| 日韩在线观看视频免费| 在线a欧美视频| 久久久久久久久中文字幕| 日韩欧美精品网址| 国产高清视频一区三区| 九九久久国产精品| 国产精品久久久久久亚洲影视| 亚洲日韩欧美视频| 亚洲欧美国产精品久久久久久久| 国产一区二区三区视频免费| 91久久久久久| 中文欧美在线视频| 国产91亚洲精品| 亚洲欧美中文字幕| 日韩性xxxx爱| 日韩久久免费电影| 欧美日韩亚洲一区二| 亚洲白拍色综合图区| 久久久国产91| 久久久久国产精品免费| 亚洲国产第一页| 久久精品国产91精品亚洲| 精品爽片免费看久久| 97精品国产97久久久久久| 国产美女久久久| 日本电影亚洲天堂| 亚洲级视频在线观看免费1级| 亚洲精品视频免费| 亚洲国产天堂久久综合| 日本91av在线播放| 91高清视频免费| 中文字幕欧美国内| 亚洲人成网站色ww在线| 国产69精品99久久久久久宅男| 精品国产一区二区三区久久| 国产精品v片在线观看不卡| 国产一区二区三区三区在线观看| 国产精品在线看| 欧美性极品xxxx做受| 午夜精品久久久久久久99黑人| 欧美在线性视频| 亚洲人成网站在线播| 亚洲免费一级电影| 亚洲精品白浆高清久久久久久| 国产精品久久99久久| 日本一区二区在线播放| 最近2019中文免费高清视频观看www99| 久久天天躁狠狠躁夜夜av| 亚洲福利视频在线| 美女撒尿一区二区三区| 亚洲日本欧美日韩高观看| 亚洲春色另类小说| 欧美xxxx18国产| 日韩欧美国产网站| 国产精品com| 5278欧美一区二区三区| 亚洲第一色中文字幕| 日韩福利伦理影院免费| 国产成人精品一区二区| 久久精品99国产精品酒店日本| 在线亚洲男人天堂| 岛国视频午夜一区免费在线观看| 日韩成人高清在线| 亚洲一区二区免费在线| 亚洲成年网站在线观看| 成年无码av片在线| 欧美电影在线免费观看网站| 91亚洲精品一区二区| 在线精品国产欧美| 中文字幕亚洲欧美日韩高清| 日韩欧美亚洲成人| 国产欧美日韩亚洲精品| 欧美日韩成人网| 奇米成人av国产一区二区三区| 亚洲精品suv精品一区二区| 91视频国产精品| 日韩av一区二区在线观看| 91av在线国产| 亚洲色图综合久久| 国产欧美精品日韩精品| 丝袜亚洲另类欧美重口| 91免费看国产| 亚洲2020天天堂在线观看| 青草热久免费精品视频| 国语自产偷拍精品视频偷| 国内精品小视频在线观看| 久久精品青青大伊人av| 欧美特黄级在线| 欧美大片欧美激情性色a∨久久| 欧美成年人在线观看| 亚洲欧美国产日韩天堂区| 欧美高清自拍一区| 亚洲一区二区免费在线| 欧美体内谢she精2性欧美| 亚洲久久久久久久久久久| 亚洲美女又黄又爽在线观看| 深夜福利日韩在线看| 97色在线观看免费视频| 国产精品三级在线| 精品一区二区三区三区| 国产精品视频一| 日韩大陆欧美高清视频区| 少妇精69xxtheporn| 亚洲成人1234| 久久久久国产精品一区| 欧美性猛交xxxx免费看久久久| 92国产精品久久久久首页| 91久久精品国产91久久性色| 欧美华人在线视频| 91国产中文字幕| 中文字幕亚洲欧美| 91久久精品国产91久久性色| 98精品国产高清在线xxxx天堂| 久久久久久成人| 久久成人亚洲精品| 亚洲一区二区三区视频播放| 亚洲精品999| 一区二区三区视频免费| 亚洲综合小说区| 亚洲视频免费一区| 国产亚洲精品综合一区91| 欧美国产日本在线| 国产成人一区二区三区电影| 精品国产一区久久久| 国产精品v日韩精品| 中文字幕精品视频| 欧美激情videoshd| 亚洲精品wwwww| 亚洲第一av网| 国产精品综合不卡av| 国产精品中文字幕在线| 亚洲美女激情视频| 国产成人av在线播放| 91色琪琪电影亚洲精品久久|