【參考網址】http://www.cnblogs.com/lmjob/archive/2008/10/14/1310617.html
【方法】
1.首先創建一個windows應用程序,然后為了本地測試創建一個WEB應用程序。
在windows窗體上拖一個Button,點擊事件代碼:
1 private void button2_Click(object sender, EventArgs e) 2 { 3 WebClient myWebClient = new WebClient(); 4 FolderBrowserDialog fbDialog = new FolderBrowserDialog(); 5 if (fbDialog.ShowDialog() == DialogResult.OK) 6 { 7 string directoryPath = fbDialog.SelectedPath; 8 string[] fn = Directory.GetFiles(directoryPath);//E:\李四\區划所\樣方數據\玉米\ym2011yj\photo\ym370082011 9 foreach (string s in fn)//E:\李四\區划所\樣方數據\玉米\ym2011yj\photo\ym370082011\ym370082011EEF.JPG 10 { 11 myWebClient.UploadFile("http://localhost:2610/WebSite/Default.aspx", "POST", s); 12 } 13 //myWebClient.QueryString["testkey"] = "cdhcdhcdh"; 14 MessageBox.Show("已上傳"); 15 } 16 }
也可以采用另外一種:
1 public bool uploadFileByHttp(string webUrl,string localFileName) 2 { 3 // 檢查文件是否存在 4 if (!System.IO.File.Exists(localFileName)) 5 { 6 MessageBox.Show("{0} does not exist!", localFileName); 7 return false; 8 } 9 try 10 { 11 System.Net.WebClient myWebClient = new System.Net.WebClient(); 12 myWebClient.UploadFile(webUrl, "POST", localFileName); 13 } 14 catch 15 { 16 return false; 17 } 18 return true; 19 } 20 21 //調用方法屬於遠程服務器的地址,和保存文件的地址 22 this.uploadFileByHttp(" http://localhost:1878/UploadFileWebSite/UploadFile.aspx", @"D:/1.txt");
后台測試代碼:
protected void Page_Load(object sender, EventArgs e) { foreach (string f in Request.Files.AllKeys) { HttpPostedFile file = Request.Files[f]; file.SaveAs(@"C:/" + file.FileName); } }
前啟動WEB查看服務器地址,並據此正確填寫窗體程序的UploadFile()方法的地址參數。然后啟動窗體應用程序點擊選取文件夾,其可將文件夾內的文件上傳到服務器,然后根據程序保存到本地C盤根目錄下。
【可以完善可待思索的問題】
1.TCP與Http上傳,各有何優劣該如何選擇,同時TCP上傳下載也不大理解,編寫的類似程序較少。
2.如何Winform程序傳遞參數給WEB頁面,WEB通過Request.Parameters[" "]獲得呢