首 页 教育新闻课件中心论文中心教学教案试题中心语文专题综合下载技术教程公务员  
设为首页
加入收藏
联系我们
您当前的位置:中国教育资源网 -> 技术教程 -> 网络相关 -> 服务器 -> Web服务器 -> 技术内容 退出登录 用户管理

WebService上传下载文件Web服务器教程

论文作者:佚名  论文来源:不详  论文发布时间:2006-6-18 22:46:22  论文发布人:chjchjchj

减小字体 增大字体

              摘要:WebService上传下载文件


通过Web Services上传和下载文件

作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2003年11月24日 2点1分31秒





随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。下面,我们就分别介绍如何通过Web Services从服务器下载文件到客户端和从客户端通过Web Services上载文件服务器


一:通过Web Services显示和下载文件


我们这里建立的Web Services的名称为GetBinaryFile,提供两个公共方法:分别是GetImage()和GetImageType(),前者返回二进制文件字节数组,后者返回文件类型,其中,GetImage()方法有一个参数,用来在客户端选择要显示或下载的文件名字。这里我们所显示和下载的文件可以不在虚拟目录下,采用这个方法的好处是:可以根据权限对文件进行显示和下载控制,从下面的方法我们可以看出,实际的文件位置并没有在虚拟目录下,因此可以更好地对文件进行权限控制,这在对安全性有比较高的情况下特别有用。这个功能在以前的ASP程序中可以用Stream对象实现。为了方便读者进行测试,这里列出了全部的源代码,并在源代码里进行介绍和注释。


首先,建立GetBinaryFile.asmx文件


我们可以在VS.NET里新建一个C#的aspxWebCS工程,然后“添加新项”,选择“Web服务”,并设定文件名为:GetBinaryFile.asmx,在“查看代码”中输入以下代码,即:GetBinaryFile.asmx.cs:

using System;<br />using System.Collections;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Diagnostics;<br />using System.Web;<br />using System.Web.UI;<br />using System.Web.Services;<br />using System.IO;<br /><br />namespace xml.sz.luohuedu.net.<a href="http://www.chinaitpower.com/Dev/Web/Asp/index.html" target="_blank">asp</a>xWebCS<br />&#123;<br />/// <summary><br />/// GetBinaryFile 的摘要说明。<br />/// Web Services名称:GetBinaryFile<br />/// 功能:返回<a href="http://www.chinaitpower.com/System/Server/index.html" target="_blank">服务器</a>上的一个<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>对象的二进制字节数组。<br />/// </summary><br />[WebService(Namespace="http://xml.sz.luohuedu.net/",<br />Description="在Web Services里利用.NET框架进行传递二进制<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>。")]<br />public class GetBinaryFile : System.Web.Services.WebService<br />&#123;<br /><br />#region Component Designer generated code<br />//Web 服务设计器所必需的<br />private IContainer components = null;<br /><br />/// <summary><br />/// 清理所有正在使用的资源。<br />/// </summary><br />protected override void Dispose( bool disposing )<br />&#123;<br />if(disposing && components != null)<br />&#123;<br />components.Dispose();<br />&#125;<br />base.Dispose(disposing);<br />&#125;<br /><br />#endregion<br /><br /> public class Images: System.Web.Services.WebService<br /> &#123;<br /> /// <summary><br /> /// Web 服务提供的方法,返回给定<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>的字节数组。<br /> /// </summary><br /> [WebMethod(Description="Web 服务提供的方法,返回给定<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>的字节数组")]<br /> public byte[] GetImage(string requestFileName)<br /> &#123;<br /> ///得到<a href="http://www.chinaitpower.com/System/Server/index.html" target="_blank">服务器</a>端的一个图片<br /> ///如果你自己测试,注意修改下面的实际物理路径<br /> if(requestFileName == null || requestFileName == "")<br /> return getBinaryFile("D:\\Picture.JPG");<br /> else<br /> return getBinaryFile("D:\\" + requestFileName);<br /> &#125;<br /><br /> /// <summary><br /> /// getBinaryFile:返回所给<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>路径的字节数组。<br /> /// </summary><br /> /// <param name="filename"></param><br /> /// <returns></returns><br /> public byte[] getBinaryFile(string filename)<br /> &#123;<br /> if(File.Exists(filename))<br /> &#123;<br /> try<br /> &#123;<br /> ///打开现有<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>以进行读取。<br /> FileStream s = File.OpenRead(filename);<br /> return ConvertStreamToByteBuffer(s);<br /> &#125;<br /> catch(Exception e)<br /> &#123;<br /> return new byte[0];<br /> &#125;<br /> &#125;<br /> else<br /> &#123;<br /> return new byte[0];<br /> &#125;<br /> &#125;<br /> /// <summary><br /> /// ConvertStreamToByteBuffer:把给定的<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>流转换为二进制字节数组。<br /> /// </summary><br /> /// <param name="theStream"></param><br /> /// <returns></returns><br /> public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)<br /> &#123;<br /> int b1;<br /> System.IO.MemoryStream tempStream = new System.IO.MemoryStream();<br /> while((b1=theStream.ReadByte())!=-1)<br /> &#123;<br /> tempStream.WriteByte(((byte)b1));<br /> &#125;<br /> return tempStream.ToArray();<br /> &#125;<br /> [WebMethod(Description="Web 服务提供的方法,返回给定<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>类型。")]<br /> public string GetImageType()<br /> &#123;<br /> ///这里只是测试,您可以根据实际的<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>类型进行动态输出<br /> return "image/jpg";<br /> &#125;<br /> &#125;<br />&#125;<br />&#125;<br />

一旦我们创建了上面的asmx文件,进行编译后,我们就可以编写客户端的代码来进行调用这个Web Services了。


我们先“添加Web引用”,输入:http://localhost/aspxWebCS/GetBinaryFile.asmx。下面,我们编写显示文件的中间文件:GetBinaryFileShow.aspx,这里,我们只需要

[] [返回上一页] [打 印] [收 藏]  
 ∷相关技术评论  (评论内容只代表网友观点,与本站立场无关!) [查看发表评论...]
 
 中国教育资源网免费技术教程下载中心-站内广告 站内广告 中国教育资源网免费技术教程下载中心-站内广告 
 中国教育资源网站内搜索 站内搜索 中国教育资源网站内搜索 
 

   
 中国教育资源网免费技术教程下载中心-栏目导航 栏目导航 中国教育资源网免费技术教程下载中心-栏目导航 
· Windows 9XMEXP · Windows NT20002003
· LinuxBSD · 系统综合
· IISApache · 硬件技术
· Web服务器 · FTP服务器
· 邮件服务器 · 域名服务器
· Windows服务器 · 代理服务器
· 服务器综合
 
中国教育资源网免费技术教程下载中心-相关教程  相关技术 中国教育资源网免费技术教程下载中心-相关教程
· [组图] 用电子邮件遥控下载
· 更改IE下载文件后的
· ASP.NET中实现直接从
· Delphi7的WebServic
· squid反向代理webse
· [图文] XoopsWebStandard(T
· WebService学习之【
· [图文] XoopsXphpbbiModule
· [组图] XoopsNewbbModules标
· ASP木马Webshell安全
 中国教育资源网免费技术教程下载中心-本月热门教程 本月热门 中国教育资源网免费技术教程下载中心-本月热门教程 
 
 中国教育资源网免费技术教程下载中心-本日热门论文 本日热门 中国教育资源网免费技术教程下载中心-本日热门论文 
 
关于本站 - 网站帮助 - 免费课件 - 美容 - 绿色软件 - 软件下载 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站留言
浙ICP备06010405号 Email:cnkjz@163.com 技术支持:名流设计
版权所有 Copyright© 2002-2004 名流