微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

推荐一个Silverlight多文件(大文件)上传的开源项目

     在Silverlight上实现文件上传的例子在网上的还不多,特别是多文件上传和大文件上传的例子就更少了。当然那些商品软件公司的产品除外。
     目前的CodePlex上就有这样一个项目,其链接 [url]http://www.codeplex.com/SLFileUpload/[/url] ,他的个人主 链接 [url]http://www.michielpost.nl/[/url]     
    
     我在本地下载运行其代码后,发现“果然”很好用,而且代码写的也很规范。当然其也是免费的,但作者并不绝各种名义上的“捐助(Donate)”。
    下面就是其“汉化”后的运行截图,首先是文件上传
    
         

    
   
     然后是文件上传
    
         

    
    根据作者的README文件,其支持下面几个初始化参数:    
   
    MaxFileSizeKB:  File size in KBs.
    MaxUploads:  Maximum number of simultaneous uploads
    FileFilter: File filter, for example ony jpeg use: FileFilter=Jpeg (*.jpg) |*.jpg
    CustomParam: Your custom parameter, anything here will be available in the WCF webservice
    DefaultColor: The default color for the control, for example: LightBlue
    
    当然,里面的服务端采用WCF方法。为了考虑在.net1框架上也可以使用,我在保留原有代码结构的基础上,将WCF 用ASMX格式拷贝了一份,经过编译,完成可以运行:)
    同时为了便于大家阅读源码,我还加入了中文说明(源码中注释很少,而且是EN文)。下面就是其主要的几个类的定义和说明:
    FileCollection 上传文件集合类,用于UI统一访问和操作:
    

Code

    上传文件信息类:
    

Code
      
    上传文件操作类(实现文件上传功能代码):    
 

Code

    服务端WCF代码如下(ASMX文件代码与其基本相同):   

Code
 
    当然在该DEMO中,其支持两种初始化方式,一种是:

< asp:Silverlight  ID ="Xaml1"  runat ="server"  Source ="~/ClientBin/mpost.SilverlightMultiFileUpload.xap"  MinimumVersion ="2.0.30523"   Width ="415"  Height ="280"    InitParameters ="MaxFileSizeKB=1000,MaxUploads=2,FileFilter=,CustomParam=1,DefaultColor=LightBlue"    />

    另一种是在ServiceReferences.ClientConfig中进行文件配置:    
   
< appSettings >
       
< add  key ="MaxFileSizeKB"  value ="50"   />
       
< add  key ="FileFilter"  value ="Photo's (*.jpg)|*.jpg"   />
       
< add  key ="FileFilter"  value =""   />
       
< add  key ="MaxUploads"  value ="2"   />
</ appSettings >
    
    而加载顺序要是自上而下,代码段如下(摘自Page.xaml.cs):    

Code

           
    好了,今天的内容就先到这里了,感兴趣的朋友可以在回复中进行讨论或给他(作者)留言,
contact@MichielPost.nl
   
   
    作者:代震军,daizhj
   
    tags:silverlight,uploade,文件上传,多文件,大文件
    
    中文注释的源码下载,请点击这里
   
    CodePlex,下载链接:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐