Silverlight文件上传下载实现方法(下载保存)

2019-12-30 11:12:34于丽
  • */   
  •   OpenFileDialog openFileDialog = new OpenFileDialog() 
  • { //弹出打开文件对话框要求用户自己选择在本地端打开的图片文件  Filter = "Jpeg Files (*.jpg)|*.jpg|All Files(*.*)|*.*", 
  • Multiselect = false //不允许多选   }; 
  •   if (openFileDialog.ShowDialog() == true)//.DialogResult.OK) 
  • {  //fileinfo = openFileDialog.Files; //取得所选择的文件,其中Name为文件名字段,作为绑定字段显示在前端 
  • fileinfo = openFileDialog.File;   
  • if (fileinfo != null)  { 
  • WebClient webclient = new WebClient();   
  • string uploadFileName = fileinfo.Name.ToString(); //获取所选文件的名字   
  • #region 把图片上传到服务器上   
  • Uri upTargetUri = new Uri(String.Format("http://www.easck.com//指定上传地址   
  • webclient.OpenWriteCompleted += new OpenWriteCompletedEventHandler(webclient_OpenWriteCompleted);  webclient.Headers["Content-Type"] = "multipart/form-data"; 
  •   webclient.OpenWriteAsync(upTargetUri, "POST", fileinfo.OpenRead()); 
  • webclient.WriteStreamClosed += new WriteStreamClosedEventHandler(webclient_WriteStreamClosed);   
  • #endregion   
  • }  else 
  • {  MessageBox.Show("请选取想要上载的图片!!!"); 
  • }  } 
  •   } 
  •    
  •   void webclient_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e) 
  • {   
  • //将图片数据流发送到服务器上   
  • // e.UserState - 需要上传的流(客户端流)  Stream clientStream = e.UserState as Stream; 
  • // e.Result - 目标地址的流(服务端流)  Stream serverStream = e.Result; 
  • byte[] buffer = new byte[4096];  int readcount = 0; 
  • // clientStream.Read - 将需要上传的流读取到指定的字节数组中  while ((readcount = clientStream.Read(buffer, 0, buffer.Length)) > 0)