最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
silverlight多文件断点续传实现代码
时间:2022-06-25 08:37:34 编辑:袖梨 来源:一聚教程网
在里面利用的是依赖属性的状态改变来时时更新一些数据,如已上传的文件大小,以及文件上传的状态等,由于代码很多,挑选部分类似的代码如下,后面将源代码公布。
代码如下 | 复制代码 |
/// NotifyPropertyChanged("BytesUploaded"); Percentage = (int)((value * 100) / _fileStream.Length); } private void NotifyPropertyChanged(string prop) public event PropertyChangedEventHandler PropertyChanged;
|
还有文件的上传时采用分块处理的,选择一块 byte[] buffer = new byte[4 * 4096]大小的内存,将文件分成N块如此大小的文件,在循环上传至最终完成。
此代码在FileUploader.cs中,这一块是最重要的,如下所示,
代码如下 | 复制代码 |
/// //文件是否上传完毕? if (_dataSent == _dataLength) //上传当前数据块 //通知上传进度修改 _client.ChannelFactory.Close();
|
再就是在上传的过程中需要一直判断文件是否被删除、完成或者中断,在FileUploader.cs中需要关注这段代码,
代码如下 | 复制代码 |
void _client_StoreFileAdvancedCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
其中需要限制文件大小,以及同时上传的文件数量需要关注mpost.SilverlightMultiFileUploadTestPage.aspx中的InitParameters参数,以前的也可以在配置文件中配置,如果要改成配置文件的形式可以更改代码Page.xaml.cs中的代码。
代码如下 | 复制代码 |
/// //加载定制配置信息串 if (initParams.ContainsKey("MaxUploads") && !string.IsNullOrEmpty(initParams["MaxUploads"])) if (initParams.ContainsKey("MaxFileSizeKB") && !string.IsNullOrEmpty(initParams["MaxFileSizeKB"])) if (initParams.ContainsKey("FileFilter") && !string.IsNullOrEmpty(initParams["FileFilter"]))
if(!string.IsNullOrEmpty( ConfigurationManager.AppSettings["FileFilter"])) }
|
其中还有其他的一些读者可以自己看代码调试运行试试,下面是运行的截图,环境是vs2010、silverlight4.0环境下。
相关文章
- 十大比特币交易排行榜2025 国内十大数字货币交易所 07-19
- 星痕共鸣森语者愈合流怎么玩 森语者愈合流玩法推荐 07-19
- 《QQ》恢复单个好友聊天记录方法 07-19
- 绝区零2.1新称号有哪些-2.1新称号获取方法大全 07-19
- Dreamweaver cs5命令列表怎么删除命令? 07-19
- Win11热点连接成功但没网?Win11移动热点和网络冲突的解决方法 07-19