最近工作原因要用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 }
图片效果如下:
选择文件
上传数据成功
分享到:
相关推荐
vs2013 c++实现上传的客户端,服务端为java写的web工程,模拟post方法,可以上传大文件
ASP.NET 在WEBAPI中开发文件上传功能。以及MVC中如何调用
.net core WebApi 文件上传服务文件下载
Webservices 实现文件上传, WinForm程序作为客户端 ,Webservices作为服务器。最大可以支持2G!
python web开发,基于flask的练手项目---文件上传下载的管理系统的设计与实现python web开发,基于flask的练手项目---文件上传下载的管理系统的设计与实现python web开发,基于flask的练手项目---文件上传下载的管理...
ASP.NET WebAPI 接口 实现单文件,多文件上传下载,图片缩略图访问实现接口,实用于APP,web系统应用,上传下载文件、图片访问分离处理。
需求背景:以前在做文件上传下载,都是基于FrameWork项目或者Core Web项目实现的文件上传或下载,基于web的文件下载及权限比较好实现的。但是现在很多公司技术领导层,都在推行前后端分离理念,所以这一次我承担了...
实现web开发中的文件上传功能,需完成如下二步操作: 在web页面中添加上传输入项 在servlet中读取上传文件的数据,并保存到本地硬盘中。 如何在web页面中添加上传输入项? “file”>标签用于在web页面中添加文件上传...
通过flask框架实现文件的上传与下载
easyui webserver 实现文件上传下载
使用webupload实现了在C# .net项目中的断点续传演示(绝对不亏的,现在.net中webupload服务端好多都不完整,我这个是自己写完用到项目中的,比较稳定,虽然代码比较初级,后面也没整理) 演示地址:...
在Web API中使用jQuery AJAX实现文件上传的例子
.NetMvc调用WebApi接口进行上传文件
c# 实现文件FTP上传至服务器 WebClient上传文件至服务器(不带进度条) 要上传的文件(全路径格式) <param name="strUrlDirPath">Web服务器文件夹路径 <returns>True/False是否上传成功</returns>
在大型分布式网站中,往往...为了保持示例的简单性和易于理解,Web服务中未使用安全策略。关于Web服务的安全问题,以后会有专门的文章讲述(可以参考WSE相关技术资料)。 <br>详情查看: http://www.SmartKernel.com
开发文件上传表单页面 在实现文件上传时,首先需要设置文件上传表单,这个表单的提交方式必须为POST。另外,还需要增加上传的属性enctype= “multipart/form-data”,该属性说明浏览器可以提供文件上传功能。 2.编写...
该源码包是goahead公司的web服务器源代码中关于文件上传的补丁代码。如果使用goAhead作为嵌入式web服务器,并要实现文件上传功能,则需要打该补丁。本人利用该补丁源码在goAhead-2.5版本中实现了文件上传功能。
采用jsp+servlet的形式实现文件的上传与下载。
这是一在WEB开发中实现文件上传的java类
ajax实现文件上传 其实在ajax出现之前,web应用也可以是无刷新的,那时大多通过IFrame来做到这一点。当然Ajax出现之后,人们一窝蜂地投奔Ajax 的阵营了,iFrame 就乏人问津了。但是用iFrame来实现无刷新上传文件确实...