| 通过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: 一旦我们创建了上面的asmx文件,进行编译后,我们就可以编写客户端的代码来进行调用这个web services了。 我们先“添加web引用”,输入:http://localhost/aspxwebcs/getbinaryfile.asmx。下面,我们编写显示文件的中间文件:getbinaryfileshow.aspx,这里,我们只需要在后代码里编写代码即可,getbinaryfileshow.aspx.cs文件内容如下: 最后,我们就编写最终的浏览页面:getbinaryfile.aspx,这个文件很简单,只需要aspx文件即可,内容如下: 二:通过web services上载文件 向服务器上载文件可能有许多种方法,在利用web services上载文件的方法中,下面的这个方法应该是最简单的了。我们仍象前面的例子那样,首先建立upload.asmx文件,其upload.asmx.cs内容如下,里面已经做了注释: 要上载文件,必须提供一个表单,来供用户进行文件的选择,下面我们就建立这样一个页面upload.aspx,用来提供文件上载: |