最新下载
热门教程
- 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环境下。
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21