首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

Silverlight中的文件上传,含大文件、文件压缩、断点等因素,该怎么解决

2012-03-30 
Silverlight中的文件上传,含大文件、文件压缩、断点等因素我的项目即将要使用到在Silverlight中上传Excel等

Silverlight中的文件上传,含大文件、文件压缩、断点等因素
我的项目即将要使用到在Silverlight中上传Excel等文件的功能,请教各位大虾有没知晓的成熟的做法或案例?

我在几个月前试做过文件上传,用的是 Silverlight 3.0 + WCF,不是使用 WebClient ,结果在默认的运行环境下,每次从Silverlight端最多只能发送大约不超过16KB的数据至 WCF端,大于16KB的文件就得多次续传。这次要进行新的开发,大致要考虑的有:

1. 如果使用 WCF,是否配置为全双工的那种?
2. 有没有使用 WebClient 的可行的解决方案?
3. 如何突破 Silverlight端向WCF端发送数据每次不能超过16KB,以加快传输速度?
4. 文件上传前能否先进行压缩(我在Silverlight端和WCF端传送我自己的代码生成的大的字符串数据(如xml)时都是SharpZipLib进行压缩的),由于Silverlight存储文件时要先弹出SaveFileDialog影响用户感,对于压缩后的文件要么就只能存储在独立区域中,要么就直接在内存中压缩?

望有同感的大虾多给给意见。

[解决办法]
www.codeplex.com
SilverlightMultiFileUploader
多文件,分块上传
文件分块上传貌似就可以解决大文件上传和断点续传的问题
参考这个例子吧
[解决办法]
问题1: 如果只是上传,不需要使用全双工模式;
问题2: WebClient也有上传文件解决方案,详细看:
http://silverlightchina.net/plus/view.php?aid=106
http://silverlightchina.net/html/download/code/2009/1123/258.html
问题3: 传送文件尺寸是WCF设置问题,可以在Config文件中设置文件传输尺寸;
问题4: 至于Silverlight客户端压缩,多数使用SharpZipLib。如果不想使用SharpZipLib,可以参考这篇文章:http://stackoverflow.com/questions/10006/what-is-the-easiest-way-to-add-compression-to-wcf-in-silverlight
[解决办法]
Silverlight不支持WCF Customize绑定,只能使用basicHttpBinding。 设置绑定缓冲尺寸:

在后台代码可以使用:

VB.NET code
Dim binding As BasicHttpBinding = New BasicHttpBinding()binding.MaxBufferSize = 2147483647binding.MaxReceivedMessageSize = 2147483647
[解决办法]
Silverlight3.0 + VS2008 SP1+WebService
Silverlight Multi File Uploader 实验下
经测试把BUFFER设为 16KB,50KB,1M,2M都没有任何问题,测试4M时出错....
楼主所说16KB的限制,在下很愚昧...
现在我用Silverlight查询服务器上数据库的数据时都是所有结果打包成一个String,请问冷大大Silverlight与WebService交互的时候String的最大长度是?

热点排行