明飞的技术园地

笨鸟先飞
  博客园  :: 新随笔  :: 联系 :: 管理

c/s程序利用webClient实现小文件的上传(C#描述)

Posted on 2006-06-28 17:29  明飞  阅读(3856)  评论(0编辑  收藏  举报
当我们要传送一些小文件(小于10M左右时),如果是web程序则直接可用FileField控件上传。
如果是c/s程序,则可以利用webClient类的UploadFile上传一些小文件。演示程序如下:
1.客户端c/s发送程序:WebClient命名空间为System.Net,具体用法参考MSDN。
 1private void btnUpload_Click(object sender, System.EventArgs e)
 2        {
 3            System.Net.WebClient oWebClient =new System.Net.WebClient();
 4
 5            string strFileName=this.txtFileName.Text.Trim();
 6            string strUrl=txtUrl.Text.Trim();
 7            try
 8
 9            {
10                
11            
12           //如strUrl=http://192.10.27.123/WebClient/WebForm1.aspx,strFileName=c:\log.txt。注意UploadFile是上传指定的文件
                   //其中文件名已经给出.UpdateData是上传二进制数据,二进制的数据是作为二进制被传送的
13           oWebClient.UploadFile(strUrl,"POST",strFileName);
14            
15            MessageBox.Show("上传成功!");
16            }

17            catch(Exception ex)
18            {
19                MessageBox.Show(ex.Message);
20            }

21            
22            
23        }
客户端的c/s程序建立完毕后,然后就是模拟服务端程序了,我们建立一个名为WebClient的web程序,接受端源程序为
 1using System;
 2using System.Collections;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Web;
 7using System.Web.SessionState;
 8using System.Web.UI;
 9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11using System.Net;
12
13namespace WebClient
14{
15    /// <summary>
16    /// WebForm1 的摘要说明。
17    /// </summary>

18    public class WebForm1 : System.Web.UI.Page
19    {
20        private void Page_Load(object sender, System.EventArgs e)
21        {
22            // 在此处放置用户代码以初始化页面
23              // '在此处放置初始化页的用户代码
24
25            
26
27        Request.Files[0].SaveAs(@"C:\Downloads\" + Request.Files[0].FileName);//另存客户端传上来的文件
28
29
30        }

31
32        Web 窗体设计器生成的代码
52    }

53}

54

这样就完成了,由于上传文件的大小还受内存的限制,这种方法只能传递小文件!