最近工作原因要用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 }
图片效果如下:
选择文件
上传数据成功
分享到:
相关推荐
在IT行业中,网络通信是不可或缺的一部分,特别是在客户端与服务器之间的数据...而在Java Web环境中,Servlet提供了一种处理文件上传的标准方式。理解这些原理和操作,对于开发涉及客户端与服务器交互的应用至关重要。
本文将深入探讨如何在WebAPI中实现文件上传功能,并介绍如何在MVC应用程序中调用这个API。 一、WebAPI中的文件上传 1. **配置路由**:首先,我们需要在WebAPI的`WebApiConfig.cs`文件中设置允许接收多部分/表单...
总结一下,Delphi中实现文件上传至Web服务器的关键点包括: 1. 选择合适的网络组件,如Indy或WinInet。 2. 编写Pascal代码来构建HTTP POST请求,使用TMemoryStream加载文件内容。 3. 设置HTTP请求头,如Content-Type...
在本场景中,Web服务被用来实现文件上传功能,允许客户端(WinForm程序)将文件发送到服务器进行处理或存储。以下是对这个技术实现的详细解释: 1. **Web服务(Webservices)**:Web服务是通过统一描述、发现和集成...
在.NET Core WebAPI中,构建一个支持文件上传和下载的服务是一项常见的需求。这涉及到处理HTTP请求,存储文件,以及提供安全的文件访问机制。本文将深入探讨如何在.NET Core WebAPI项目中实现这一功能。 首先,我们...
该源码包是goahead公司的web服务器源代码中关于文件上传的补丁代码。如果使用goAhead作为嵌入式web服务器,并要实现文件上传功能,则需要打该补丁。本人利用该补丁源码在goAhead-2.5版本中实现了文件上传功能。
本篇将详细讲解如何在.NET MVC应用中调用WebApi接口实现文件上传。 首先,让我们了解.NET MVC和WebApi的基本概念。MVC(Model-View-Controller)是一种设计模式,用于构建可维护、可扩展的Web应用程序。它将业务...
python web开发,基于flask的练手项目---文件上传下载的管理系统的设计与实现python web开发,基于flask的练手项目---文件上传下载的管理系统的设计与实现python web开发,基于flask的练手项目---文件上传下载的管理...
在这个场景下,"C# WebAPI文件上传下载源码"指的是使用C#编写的一套实现文件上传和下载功能的WebAPI服务代码。 文件上传功能是Web应用中的常见需求,允许用户将本地文件传输到服务器。在C# WebAPI中,这通常通过...
本文将深入探讨如何在ASP.NET Web API中实现文件上传功能,并涉及MIME多部分类型。 首先,让我们了解MIME(Multipurpose Internet Mail Extensions)多部分类型。MIME是一种标准,用于定义电子邮件和其他网络传输的...
本教程将详细介绍如何在ASP.NET Web API中结合jQuery的AJAX方法实现文件上传。 首先,我们需要在客户端创建一个HTML表单,用于用户选择要上传的文件。HTML表单通常包含一个`<input type="file">`元素,用户可以通过...
在本篇文章中,我们将深入探讨如何在WebAPI中实现文件上传,以及涉及的关键知识点。 首先,我们需要创建一个WebAPI控制器,该控制器将处理文件上传请求。控制器通常包含一个或多个公共方法,每个方法对应一个HTTP...
本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...
在IT行业中,文件上传和下载是Web应用中的常见功能,特别是在大数据时代,大文件的断点续传技术显得尤为重要。本教程将详细讲解如何利用WebUploader、SpringBoot和MySQL实现一个支持断点续传功能的文件上传下载系统...
在本场景中,我们将探讨如何利用ASP.NET WebAPI来实现文件的上传、下载以及图片的缩略图访问。 一、文件上传: 在ASP.NET WebAPI中,文件上传通常通过HttpPostedFileBase对象来处理。开发者需要创建一个API控制器...
在Web开发中,实现文件上传功能是常见的需求,特别是在构建交互性强、用户参与度高的网站时。本篇文章将深入探讨如何在不同的Web框架下实现这一功能,并提供一个名为"smartUpload"的工具作为示例。 文件上传是允许...
"JSP实现文件上传与下载" JSP(Java Server Pages)是一种动态网页技术,用于开发基于Web的应用程序。JSP技术可以和其他Java技术集成,实现复杂的Web应用程序。下面是JSP实现文件上传与下载的知识点总结: 一、JSP...
在本文中,我们将深入探讨如何使用Visual FoxPro(VFP)将文件上传到Web服务器,主要涉及的技术包括XMLHTTP和XMLDOM。这两种技术是VFP与Web服务交互的重要工具,让我们一起详细了解它们。 1. Visual FoxPro(VFP)...
接下来,我们来谈谈实现文件上传的步骤: 1. 创建HTML表单:在网页中创建一个包含`<form>`元素的表单,设置`enctype="multipart/form-data"`和`method="POST"`属性,指定上传文件的URL。 2. 文件输入元素:在表单...
通过研究这些示例,你可以更好地理解如何结合EasyUI和WebServer实现文件上传下载功能。同时,注意文件安全性和权限控制,避免非法文件上传和敏感数据泄露。在实际项目中,还应考虑错误处理、文件大小限制、文件类型...