最早发在博客园和我自己的博客,现也转到这里,这篇小文已经被转的到处都是了,是好事情,不过很少有注明出处的。

博客地址:http://www.intersense.net/z-blog

发布软件:Live Writer + Code Formatter for Windows Live Writer

Silverlight跨浏览器支持已经有了长足的进步,而且与.NET开发语言的完美结合,这些都使得在Windows平台下开发富客户端应用Silverlight应该比Flash更有优势,当然Silverlight代替Flash应该为时尚早,而且现有的功能与Flash仍有不小差距,但是对于开发者而言早一点接触、使用的话,对于改进网站用户的体验,提高网站的交互能力和界面很有帮助。

本文就如何使用Silverlight调用Web Service进行文件上传,Silverlight用于界面显示、用户选择上传的文件、上传过程的显示(进度条)、多文件上传状态显示;web service中提供的方法将接收到的客户端发送来的文件保存到服务器的特定目录并将上传文件信息保存到XML文件。因为上传的文件一般用于向其他用户提供下载共享,所以XML文件中保存的信息是用于后续的下载信息提供源,主要包括文件名、文件大小、上传时间、下载次数、最后下载时间等。XML文件的存取采用的方法是XML序列化和反序列化。

文件下载部分的实现比较容易,后续会发布基于Silverlight的下载界面以及代码。

上传页面构成:

  • DataGrid控件用于显示用户选定的待上传文件;
  • 按钮“选择上传文件”点击之后打开选择文件对话框用户可以选择多个文件;
  • 按钮“清除”,点击之后将DataGrid中的内容清空;
  • 按钮“上传”,点击之后如果DataGrid中内容不为空,则开始逐个上传所有文件。 页面如下图所示:

tmpD597tmp398

源代码下载:

 

SilverlightApplication1.Web.rar 

SilverlightApplication1.rar