silverlight学习笔记使用webclient实现通讯(二)(上传和下载流数据).docx
《silverlight学习笔记使用webclient实现通讯(二)(上传和下载流数据).docx》由会员分享,可在线阅读,更多相关《silverlight学习笔记使用webclient实现通讯(二)(上传和下载流数据).docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 接上节,本文直接进入实例操作部分。在此处,我们以典型的图片文件为例来学习如何用WebClient类来实现上传和下载流数据的。 新建一个Silverlight应用程序,命名为:SLWebClientStream。 一、准备工作: 1、准备一张图片,本例我们准备了一张名为的图片,把它拷贝到项目的根目录下。 2、在项目下新建一个目录,命名为Pics,我们将在此处放置上传上来的图片文件。 完成准备工作后,项目如下图:二、编码实现(一)、客户端部分1、建立用户界面内容如下:界面如下:2、下载图片文件代码#region下载图片privatevoidbtnDownload_Click(objectsend
2、er,RoutedEventArgse)/向指定的Url发送下载流数据请求StringimgUrl= :/localhost:51896/Bubble.jpg;Uriendpoint=newUri(imgUrl);WebClientclient=newWebClient();client.OpenReadCompleted+=newOpenReadCompletedEventHandler(OnOpenReadCompleted);client.DownloadProgressChanged+=newDownloadProgressChangedEventHandler(clientDownl
3、oadStream_DownloadProgressChanged);client.OpenReadAsync(endpoint);voidOnOpenReadCompleted(objectsender,OpenReadCompletedEventArgse)/OpenReadCompletedEventArgs.Error-该异步操作期间是否发生了错误/OpenReadCompletedEventArgs.Cancelled-该异步操作是否已被取消/OpenReadCompletedEventArgs.Result-下载后的Stream类型的数据/OpenReadCompletedEven
4、tArgs.UserState-用户标识if(e.Error!=null)MessageBox.Show(e.Error.ToString();return;if(e.Cancelled!=true)/获取下载的流数据(在此处是图片数据)并显示在图片控件中Streamstream=e.Result;BitmapImagebitmap=newBitmapImage();bitmap.SetSource(stream);imgDownLoad.Source=bitmap;voidclientDownloadStream_DownloadProgressChanged(objectsender,Do
5、wnloadProgressChangedEventArgse)/DownloadProgressChangedEventArgs.ProgressPercentage-下载完成的百分比/DownloadProgressChangedEventArgs.BytesReceived-当前收到的字节数/DownloadProgressChangedEventArgs.TotalBytesToReceive-总共需要下载的字节数/DownloadProgressChangedEventArgs.UserState-用户标识this.tbMsgString.Text=string.Format(完成百
6、分比:0当前收到的字节数:1资料大小:2,e.ProgressPercentage.ToString()+%,e.BytesReceived.ToString(),e.TotalBytesToReceive.ToString();#endregion3、上传图片文件代码#region上传图片privatevoidbtnUpLoad_Click(objectsender,RoutedEventArgse)/*OpenWriteCompleted-在打开用于上传的流完成时(包括取消操作及有错误发生时)所触发的事件*WriteStreamClosed-在写入数据流的异步操作完成时(包括取消操作及有错
7、误发生时)所触发的事件*UploadProgressChanged-上传数据过程中所触发的事件。如果调用OpenWriteAsync()则不会触发此事件*Headers-与请求相关的的标头的key/value对*OpenWriteAsync(Uriaddress,stringmethod,ObjectuserToken)-打开流以使用指定的方法向指定的URI写入数据*Uriaddress-接收上传数据的URI*stringmethod-所使用的 方法(POST或GET)*ObjectuserToken-需要上传的数据流*/OpenFileDialogopenFileDialog=newOpen
8、FileDialog()/弹出打开文件对话框要求用户自己选择在本地端打开的图片文件Filter=JpegFiles(*.jpg)|*.jpg|AllFiles(*.*)|*.*,Multiselect=false/不允许多选;if(openFileDialog.ShowDialog()=true)/.DialogResult.OK)/fileinfo=openFileDialog.Files;/取得所选择的文件,其中Name为文件名字段,作为绑定字段显示在前端fileinfo=openFileDialog.File;if(fileinfo!=null)WebClientwebclient=ne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- silverlight 学习 笔记 使用 webclient 实现 通讯 上传 下载 数据
限制150内