最新下载
热门教程
- 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环境下。
相关文章
- 奇迹暖暖卷二10-6高分有哪些搭配思路 04-30
- 老头看到一美女大冬天还穿超短裙 04-30
- 我看看,在哪一层啊? 04-30
- 我满脸通红的说:这是首付 04-30
- 面试时候也把自己说的很牛B的样子 04-30
- 你们的菜要慢点上,厨师去买土豆了…… 04-30