在winform实现文件上传到服务器

本文探讨了winform向服务器上传文件的方法。介绍了通过WebClient或HttpWebRequest模拟HTTP的POST动作实现上传,给出了服务器端接收文件代码及winform端调用WebClient的UploadFile方法代码,同时指出该方法不能断点续传、速度慢,不适用于大文件上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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");
这个方法的缺点是不能断点续传,速度比较慢,所以不能上传大文件。

转载于:https://www.cnblogs.com/guoxiaocong/archive/2005/09/03/229405.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值