web服务中实现文件的上传

系统 1570 0

 

最近工作原因要用 vs2003 来开发 Pocket PC 方面的软件 .

由于项目需要放弃了项目初期拟定的用 asp.net 移动 WEB 应用程序的开发方式 , 而改用智能设备应用程序来开发产品 .

其实智能设备应用程序开发与 桌面应用程序非常类似 , 也是一种 win 窗体开发 .

该项目为了保持 Pocket PC 中的数据和远程服务器的数据保持一致 , 用到了 web 服务技术 .

其中涉及一个图片上传功能的实现 , 就是把手机拍摄的图片及时发送到远程服务器 .

 

让我们先建立一个 WEB 服务 SmartDeviceMobileReportWebService

在其中定义一个方法 UploadFile负责接收上传的图片,代码如下:

 1          /**/ ///   <summary>
 2          ///  上传文件
 3          ///   </summary>
 4          ///   <param name="fs"> 文件的字节数组 </param>
 5          ///   <param name="FileName"> 文件名称 </param>
 6          ///   <param name="content"> 说明 </param>
 7          ///   <returns> 是否文件上载成功 </returns>

 8         [WebMethod(Description = " 提供 文件上传 的方法,返回文件是否上载成功 " )]
 9          public   bool  UploadFile( byte [] b, string  FileName)
10          {
11              try
12              {
13                  // 定义并实例化一个内存流,以存放提交上来的字节数组。
14                 MemoryStream memoryStream  =   new  MemoryStream(b);
15
16                  // 文件存放目录
17                  string  dir = @" d:\pic\ " ;
18
19                  // 判断文件存放目录是否存在
20                  if  (   ! Directory.Exists(dir) )
21                  {
22                      return   false ;
23                 }

24
25                  // 定义实际文件对象,保存上载的文件。
26                  string  fileName  =   dir  +  FileName;
27
28                  // 创建文件流,要是上载的文件存在就覆盖
29                 FileStream fileStream  =   new  FileStream(fileName, FileMode.Create);
30
31                  // 把内内存里的数据写入文件流
32                 memoryStream.WriteTo(fileStream);
33
34                  // 关闭流文件
35                 memoryStream.Close();
36                 fileStream.Close();
37                 
38                 fileStream  =   null ;
39                 memoryStream  =   null ;
40                 
41                  return   true ;
42             }

43              catch ( Exception ex )
44              {
45                  string  s = ex.Message;
46                  return   false ;
47             }

48         }


 

再到我的 Pocket PC 客户端

先引用 web 服务 http://10.10.10.191/SmartDeviceMobileReportWebService/ReportWebService.asmx 并命名为 ReportWebService

编写上传按钮事件

 1 // 上传按钮事件
 2          private   void  uploadbutton_Click( object  sender, System.EventArgs e)
 3          {
 4              // 要上传的文件
 5              string  fileFullName = this .fileMsglabel.Text;
 6             
 7              if  (  ! File.Exists(fileFullName) )
 8              {
 9                 MessageBox.Show( " 请选择图片 " );
10                  return ;
11             }

12
13              int  i = fileFullName.LastIndexOf( " \\ " );
14             
15             Cursor.Current = Cursors.WaitCursor;
16
17              try
18              {
19                  // 调用WEB服务
20                 ReportWebService.ReportWebService r = new  ReportWebService.ReportWebService();
21             
22                  // 要上传的文件名
23                  string  fileName = fileFullName.Substring(i + 1 );
24             
25                  // 创建文件的实例
26                 FileInfo f = new  FileInfo(fileFullName);
27             
28                  // 创建只读 FileStream
29                 FileStream  fileStream  =  f.OpenRead() ;
30                 
31                  byte [] byteArray =   new   byte [f.Length];
32                     
33                  // 从流中读取字节并将该数据写入给定数组中
34                 fileStream.Read(byteArray, 0 ,Convert.ToInt32( f.Length ));
35
36                  // 开始调用web服务器上的公用方法
37                  if  (  ! r.UploadFile(byteArray,fileName) )
38                  {
39                     MessageBox.Show( " 数据上传失败! " );
40                 }

41                  else
42                  {
43                     MessageBox.Show( " 数据上传成功! " );
44                                     }

45
46                  // 关闭流文件
47                 fileStream.Close();
48                 fileStream = null ;
49
50             }

51              catch
52              {
53                 MessageBox.Show( " 数据上传失败! " );
54             }

55              finally
56              {
57                 Cursor.Current = Cursors.Default;
58             }
    
59         }

图片效果如下:



选择文件



上传数据成功

web服务中实现文件的上传


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论