Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互 *** 作的应用程序。
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
(Web Service 在此不做过多介绍,具体介绍可百度下)
2. WEB Service 开发
2.1.服务配置
Asp.Net 一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。
<httpRuntime maxRequestLength="40960" executionTimeout="1800" />
maxRequestLength:指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。
默认值为 4096 (4 MB)。
executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。
2.2.服务开发
本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:
3. WinForm 程序开发
WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。
3.1.Winform 程序实现效果
程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。
C#使用webservice把文件上传到服务器的代码如下(这里以C:\\zhidao.jpg这个文件上传为例):
WebService部分:
/// <summary>/// 保存文件到远程服务器
/// </summary>
/// <param name="FileByteArray">待转换字节数组</param>
/// <param name="FileLength">字节长度</param>
/// <param name="SaveToUrl">保存路径</param>
/// <returns>返回是否执行成功</returns>
[WebMethod(Description = "保存文件到远程服务器.")]
public bool SaveFile(byte[] FileByteArray,int FileLength, string SaveToUrl)
{
try
{
FileStream fs = new FileStream(SaveToUrl, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(FileByteArray, 0, FileLength)
fs.Close()
}
catch {
return false
}
return true
}
上传文件调用部分:
protected void Button1_Click(object sender, EventArgs e){
MangerPhoto.Service mp = new MangerPhoto.Service()
Response.Write(mp.SaveFile(getByte(), FileUpload1.PostedFile.ContentLength, "C:\\zhidao.jpg"))
} private byte[] getByte() {//获得转化后的字节数组
//得到用户要上传的文件名
string strFilePathName = FileUpload1.PostedFile.FileName
string strFileName = Path.GetFileName(strFilePathName)
int FileLength = FileUpload1.PostedFile.ContentLength
//上传文件
Byte[] FileByteArray = new Byte[FileLength] //图象文件临时储存Byte数组
Stream StreamObject = FileUpload1.PostedFile.InputStream //建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray, 0, FileLength)
return FileByteArray
}
Asp.Net一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。
<httpRuntime maxRequestLength="40960" executionTimeout="1800" />
maxRequestLength:指定输入流缓冲阈值限制(以 KB
为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。
默认值为 4096 (4 MB)。
executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。
2.2.服务开发
本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:
步骤阅读
3. WinForm 程序开发
WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。
文件上传关键源码
localhost.WebService mWebService = new WinTest.localhost.WebService()
mWebService.CookieContainer = new System.Net.CookieContainer()
mWebService.Timeout =- 1
对 XML Web services 的同步调用的超时(以毫秒为单位)。默认为 100000 毫秒。提示:如果将 Timeout 属性设置为
Timeout =-1,则指示该请求无超时。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)