亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

分享WCF文件傳輸實現方法---WCFFileTransfer

2020-01-24 01:23:52
字體:
來源:轉載
供稿:網友

前幾天分享了分享了WCF聊天程序--WCFChat ,本文和大家一起分享利用WCF實現文件的傳輸。
程序運行效果:
接收文件端:

發送文件端:連接WCF服務,選擇要傳輸的文件

文件傳輸成功:

我們會在保存文件的默認路徑:C:/Documents and Settings/Administrator/桌面,下看到傳輸的文件:

代碼分析:
這里就不一一的闡述每一句代碼的作用了,感興趣的朋友可以下載,文后會有下載鏈接。說下值得注意的地方:
前兩天有人在百度知道中問能不能把WCF中的契約單獨封裝到一個類庫中,當時感覺多此一舉,無意中看到把接口單獨分出去,有個很好的應用,就是利用通道實現客戶端代理。
ITransfer.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.Runtime.Serialization;using System.Threading;using System.IO;namespace FileInterface{  [ServiceContract]  public interface ITransfer  {    [OperationContract(Action = "UploadFile")]    void TransferFile(FileTransferMessage request);//文件傳輸  }  [MessageContract]  public class FileTransferMessage  {    [MessageHeader(MustUnderstand = true)]    public string SavePath;//文件保存路徑    [MessageHeader(MustUnderstand = true)]    public string FileName;//文件名稱    [MessageBodyMember(Order = 1)]    public Stream FileData;//文件傳輸時間  }}

利用通道創建客戶端代理:

if (_proxy == null)      {        try        {          NetTcpBinding binding = new NetTcpBinding();          binding.TransferMode = TransferMode.Streamed;          binding.SendTimeout = new TimeSpan(0, 30, 0);          //利用通道創建客戶端代理          _proxy = ChannelFactory<ITransfer>.CreateChannel(binding, new EndpointAddress(CBSerURL.Text));          IContextChannel obj = _proxy as IContextChannel;          //string s = obj.SessionId;        }        catch (Exception ex)        {          MessageBox.Show(ex.Message);          return;        }

這樣,既不用添加服務引用,也不需要生成代理。
文件傳輸的函數不是很難,代碼如下:

public void TransferFile(FileTransferMessage request)    {      string logInfo;      Program.Get_ILog().Log(logInfo = string.Format("開始接收文件,name={0}", request.FileName));//填寫日志      //文件信息      string uploadFolder = AppValue.GetParam()._saveDir;      string savaPath = request.SavePath;      string fileName = request.FileName;      Stream sourceStream = request.FileData;      FileStream targetStream = null;      //判斷文件是否可讀      if (!sourceStream.CanRead)      {        throw new Exception("數據流不可讀!");      }      if (savaPath == null) savaPath = @"文件傳輸/";      if (!savaPath.EndsWith("http://")) savaPath += "http://";      if (!uploadFolder.EndsWith("http://")) uploadFolder += "http://";      uploadFolder = uploadFolder + savaPath;      //創建保存文件夾      if (!Directory.Exists(uploadFolder))      {        Directory.CreateDirectory(uploadFolder);      }      int fileSize = 0;      string filePath = Path.Combine(uploadFolder, fileName);//Combine合并兩個路徑      try      {        //文件流傳輸        using (targetStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))        {          //定義文件緩沖區          const int bufferLen = 4096;          byte[] buffer = new byte[bufferLen];          int count = 0;          while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0)          {            targetStream.Write(buffer, 0, count);            fileSize += count;          }          targetStream.Close();          sourceStream.Close();        }      }      catch (Exception ex)      {        Program.Get_ILog().Log(logInfo + ex.Message);      }      Program.Get_ILog().Log(string.Format("接收文件完畢 name={0},filesize={1}",       request.FileName, fileSize));    }

其他的代碼感興趣的朋友下載來研究吧!


源代碼:WCFFileTransfer.rar

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日韩欧美| 成人在线激情视频| 日韩精品福利在线| 情事1991在线| 色综合久久88色综合天天看泰| 国产精品美女www| 久久精品国产亚洲7777| 日韩成人av网| 综合国产在线观看| 国产91成人在在线播放| 亚洲自拍另类欧美丝袜| 68精品国产免费久久久久久婷婷| 亚洲第一区中文99精品| 国产成人精品午夜| 欧美另类极品videosbest最新版本| 久久国内精品一国内精品| 国产精品美女主播在线观看纯欲| 欧美综合一区第一页| 深夜成人在线观看| 国产精品一区av| 亚洲美女又黄又爽在线观看| 成人午夜激情网| 黑人狂躁日本妞一区二区三区| 国内精品久久久久影院优| 91久久精品日日躁夜夜躁国产| 97超视频免费观看| 亚洲午夜av电影| 国产精品99久久久久久www| 不卡av电影在线观看| 高清日韩电视剧大全免费播放在线观看| 最新日韩中文字幕| 亚洲国产精品va在线看黑人动漫| 久久久久久国产精品| 久久久亚洲影院你懂的| 国产精品福利在线观看网址| 国产色婷婷国产综合在线理论片a| 成人在线免费观看视视频| 亚洲国产成人精品女人久久久| 日韩理论片久久| 亚洲精品www| 亚洲性无码av在线| 欧美日韩国产麻豆| 国产欧美精品一区二区三区介绍| 欧美一级免费看| 亚洲情综合五月天| 韩国美女主播一区| 91色精品视频在线| 亚洲免费视频一区二区| 日韩欧亚中文在线| 亚洲精品国产品国语在线| 日韩av免费在线播放| 国产精品成人久久久久| 九九精品视频在线| 欧美日韩午夜剧场| 国产日韩欧美在线观看| 日韩免费精品视频| 亚洲午夜国产成人av电影男同| 亚洲女人天堂成人av在线| 欧美日韩国产一区在线| 777国产偷窥盗摄精品视频| 91精品国产高清久久久久久91| 欧美丰满少妇xxxxx| 一区二区日韩精品| 欧美成人一区二区三区电影| 欧美性猛xxx| 国产经典一区二区| 2019国产精品自在线拍国产不卡| 社区色欧美激情 | 日韩在线一区二区三区免费视频| 日韩av大片免费看| 大伊人狠狠躁夜夜躁av一区| 91精品视频在线播放| 国产精品久久久久久久av大片| 日韩av第一页| 欧美在线视频免费观看| 亚洲精选在线观看| 日韩毛片在线观看| 亚洲伊人久久综合| 欧美一级黄色网| 国产经典一区二区| 51精品国产黑色丝袜高跟鞋| 亚洲精品黄网在线观看| 国产一区玩具在线观看| 成人做爰www免费看视频网站| 92看片淫黄大片欧美看国产片| 不用播放器成人网| 91精品综合久久久久久五月天| 国产日韩欧美影视| 亚洲自拍偷拍福利| 亚洲精品天天看| 日韩免费在线播放| 疯狂蹂躏欧美一区二区精品| 亚洲另类xxxx| 最近更新的2019中文字幕| 最新亚洲国产精品| 欧美第一黄网免费网站| 国产一区二区在线播放| 中文字幕亚洲字幕| 国产一区二区三区网站| 欧美成人午夜激情在线| 中文字幕久久久av一区| 国产精品成人v| 日韩av免费在线| 欧美大片大片在线播放| 欧美日韩美女在线| 欧美成人精品一区二区| 久久久久久网址| 亚洲毛片在线观看| 性欧美xxxx视频在线观看| 色视频www在线播放国产成人| 欧美大成色www永久网站婷| 成人国产精品久久久久久亚洲| 国产精品wwwwww| 日韩在线一区二区三区免费视频| 欧美日韩一区二区在线播放| 韩剧1988在线观看免费完整版| 日韩av综合网| 久久午夜a级毛片| 精品久久久中文| 午夜精品久久久久久久白皮肤| 国产精品久久久久久久久久三级| 日韩欧美亚洲一二三区| 久久久亚洲精选| 日日骚av一区| 国产91色在线| 中文字幕在线看视频国产欧美在线看完整| 国产精品成人免费视频| 北条麻妃一区二区在线观看| 日韩黄在线观看| 久久九九国产精品怡红院| 日本一欧美一欧美一亚洲视频| 成人国产在线激情| 国产精品久久久久久亚洲调教| 国产精品久久久久久婷婷天堂| 亚洲视频在线观看网站| 久久精品亚洲94久久精品| 色偷偷91综合久久噜噜| 91久久精品视频| 亚洲天堂成人在线| 亚洲色图狂野欧美| 日韩一级黄色av| 欧美老女人www| 亚洲欧洲视频在线| 成人黄色免费网站在线观看| 97超级碰碰人国产在线观看| 国产精品久久久久久久久久三级| 欧美视频国产精品| 亚洲a中文字幕| 亚洲一区二区三区777| 午夜精品久久久久久99热软件| 国产精品人成电影在线观看| 按摩亚洲人久久| 欧美黑人性生活视频| 欧美亚洲国产视频小说| 一个色综合导航| 久久久久国产一区二区三区| 国产午夜精品理论片a级探花| 亚洲成人黄色网址| 最好看的2019年中文视频| 久久久久久美女| 亚洲欧洲日韩国产| 亚洲激情视频在线播放| 午夜精品久久久久久久99热浪潮| 欧美性受xxxx白人性爽|