Winform端上傳圖片到服務器


轉載自  在winform實現文件上傳到服務器

 

 

webform上傳文件可能大家都寫過很多,一個HtmlInputFile.PostedFile.SaveAs就搞定了,不過不知道大家有沒有在winform做過向服務器上傳文件呢?

一個很自然的想法是用Web Services,呵呵,我也很喜歡Web Services,但是后來我在網上查了一下資料,發現了另外一種比簡單實用的方法,

通過WebClient(或者HttpWebRequest)來模擬HTTP的POST動作來實現。寫出來和大家探討一下,那位大蝦寫個Web Services的方法來回應討論一下更好。

首先在服務器部署一個網站,呵呵,因為畢竟是模擬HTTP了。比如說是http://localhost:1878/UploadFileWebSite/UploadFile1.aspx

在這個頁面的pageload里面加入下面的代碼,用來接收winform傳過來的file,保存文件在服務器。

 

        foreach (string f in Request.Files.AllKeys)
        {
            HttpPostedFile file = Request.Files[f];
            file.SaveAs(@"c:\" + file.FileName);
        }

 


至於winform那邊,就只是要調用一下WebClient的UploadFile方法了。

public bool uploadFileByHttp(string webUrl,string localFileName)
{
    // 檢查文件是否存在
    if (!System.IO.File.Exists(localFileName)) 
    {
         MessageBox.Show("{0} does not exist!", localFileName);
         return false;
    }
    try
    {
         System.Net.WebClient myWebClient = new System.Net.WebClient();
         myWebClient.UploadFile(webUrl, "POST", localFileName);
    }
    catch
    {               
         return false;
    }
    return true;
}

 

調用:
this.uploadFileByHttp("http://localhost:1878/UploadFileWebSite/UploadFile.aspx", @"D:\1.txt");
這個方法的缺點是不能斷點續傳,速度比較慢,所以不能上傳大文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM