1.WebService 代码。 /// <summary> /// 实现文件上传 /// </summary> /// <param name="fileByte">文件字节流</param> /// <param name="fileExtention">文件后缀</param> /// <returns>文件流长度</returns> [WebMethod(Description = "上传文件")] public int UploadFile(byte[] fileByte, string fileExtention) { string sFilePath = Path.Combine(Server.MapPath(m_sUploadPath), fileExtention); if (File.Exists(sFilePath)) File.Delete(sFilePath); using (FileStream fs = new FileStream(sFilePath, FileMode.CreateNew)) fs.Write(fileByte, 0, fileByte.Length); return fileByte.Length; } 2.Silverlght 端代码 /// <summary> /// 浏览文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReview_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofdFile = new OpenFileDialog(); if (ofdFile.ShowDialog().Value) { FileInfo fileInfo = ofdFile.File; using (Stream stream = fileInfo.OpenRead()) { stream.Position = 0; m_bBuffer = new byte[stream.Length + 1]; stream.Read(m_bBuffer, 0, m_bBuffer.Length); m_sFileExtention = fileInfo.Name; txtFilePath.Text = fileInfo.Name; } } } static byte[] m_bBuffer; static string m_sFileExtention = string.Empty; void upload_UploadFileCompleted(object sender, UploadTest.UploadFileCompletedEventArgs e) { MessageBox.Show("上传成功!"); } /// <summary> /// 执行上传 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUplaod_Click(object sender, RoutedEventArgs e) { UploadTest.WebServiceSoapClient upload = new UploadTest.WebServiceSoapClient(); upload.UploadFileAsync(m_bBuffer, m_sFileExtention); upload.UploadFileCompleted += new EventHandler<UploadTest.UploadFileCompletedEventArgs>(upload_UploadFileCompleted); }