国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

手把手教你實現WCF上傳文件

開發 后端
文章主要實現WCF上傳文件,有詳細的步驟和代碼介紹,喜歡研究WCF的朋友一定要仔細閱讀,希望對大家有技術上的提高。

在優酷上我想上傳一段視頻,你有想過會臺是怎么實現的嗎?這里我就為大家分析一下關于利用WCF上傳文件,在WCF沒出現之前,我一直使用用WebService來上傳文件,我不知道別人為什么要這么做,因為我們的文件服務器和網站后臺和網站前臺都不在同一個機器,操作人員覺得用FTP傳文件太麻煩,我就做一個專門用來上傳文件的WebService,把這個WebService部署在文件服務器上,然后在網站后臺調用這個WebService,把網站后臺頁面上傳上來的文件轉化為字節流傳給WebService,然后WebService把這個字節流保存文件到一個只允許靜態頁面的網站(靜態網站可以防止一些腳本木馬)。

#T#WebService來上傳文件存在的問題是效率不高,而且不能傳輸大數據量的文件,當然你可以用Wse中的MTOM來傳輸大文件,有了WCF就好多了,通過使用WCF傳遞Stream對象來傳遞大數據文件,但有一些限制:只有BasicHttpBinding、NetTcpBinding和NetNamedPipeBinding支持傳送流數據。流數據類型必須是可序列化的Stream或MemoryStream。傳遞時消息體(MessageBody)中不能包含其他數據。TransferMode的限制和MaxReceivedMessageSize的限制等。

下面具體實現:新建一個WCFService,接口文件的代碼如下:

  1. [ServiceContract]  
  2. publicinterfaceIUpLoadService  
  3. {  
  4. [OperationContract(Action="UploadFile",IsOneWay=true)]  
  5. voidUploadFile(FileUploadMessagerequest);  
  6. }  
  7. [MessageContract]  
  8. publicclassFileUploadMessage  
  9. {  
  10. [MessageHeader(MustUnderstand=true)]  
  11. publicstringSavePath;  
  12. [MessageHeader(MustUnderstand=true)]  
  13. publicstringFileName;  
  14. [MessageBodyMember(Order=1)]  
  15. publicStreamFileData;  

定義FileUploadMessage類的目的是因為第三個限制,要不然文件名和存放路徑就沒辦法傳遞給WCF了,根據第二個限制,文件數據是用System.IO.Stream來傳遞的接口方法只有一個,就是WCF上傳文件,注意方法參數是FileUploadMessage接口實現類文件的代碼如下:

  1. publicclassUpLoadService:IUpLoadService  
  2. {  
  3. publicvoidUploadFile(FileUploadMessagerequest)  
  4. {  
  5. stringuploadFolder=@"C:\kkk\";  
  6. stringsavaPath=request.SavePath;  
  7. stringdateString=DateTime.Now.ToShortDateString()+@"\";  
  8. stringfileName=request.FileName;  
  9. StreamsourceStream=request.FileData;  
  10. FileStreamtargetStream=null;  
  11. if(!sourceStream.CanRead)  
  12. {  
  13. thrownewException("數據流不可讀!");  
  14. }  
  15. if(savaPath==null)savaPath=@"Photo\";  
  16. if(!savaPath.EndsWith("\\"))savaPath+="\\";  
  17.  
  18. uploadFolderuploadFolder=uploadFolder+savaPath+dateString;  
  19. if(!Directory.Exists(uploadFolder))  
  20. {  
  21. Directory.CreateDirectory(uploadFolder);  
  22. }  
  23. stringfilePath=Path.Combine(uploadFolder,fileName);  
  24. using(targetStream=newFileStream(filePath,FileMode.Create,FileAccess.Write,FileShare.None))  
  25. {  
  26. //readfromtheinputstreamin4Kchunks  
  27. //andsavetooutputstream  
  28. constintbufferLen=4096;  
  29. byte[]buffer=newbyte[bufferLen];  
  30. intcount=0;  
  31. while((count=sourceStream.Read(buffer,0,bufferLen))>0)  
  32. {  
  33. targetStream.Write(buffer,0,count);  
  34. }  
  35. targetStream.Close();  
  36. sourceStream.Close();  
  37. }  
  38. }  
  39. }  

實現的功能是到指定目錄下按照日期進行目錄劃分,然后以傳過來的文件名保存文件。這篇文章最主要的地方就是下面的Web.Config配置:

  1. <system.serviceModel> 
  2. <bindings> 
  3. <basicHttpBinding> 
  4. <bindingnamebindingname="FileTransferServicesBinding"maxReceivedMessageSize="9223372036854775807"  
  5. messageEncoding="Mtom"transferMode="Streamed"sendTimeout="00:10:00"/> 
  6. </basicHttpBinding> 
  7. </bindings> 
  8. <services> 
  9. <servicebehaviorConfigurationservicebehaviorConfiguration="UploadWcfService.UpLoadServiceBehavior" 
  10. name="UploadWcfService.UpLoadService"> 
  11. <endpointaddressendpointaddress=""binding="basicHttpBinding"bindingConfiguration="FileTransferServicesBinding"contract="UploadWcfService.IUpLoadService"> 
  12. </endpoint> 
  13. <endpointaddressendpointaddress="mex"binding="mexHttpBinding"contract="IMetadataExchange"/> 
  14. </service> 
  15. </services> 
  16. <behaviors> 
  17. <serviceBehaviors> 
  18. <behaviornamebehaviorname="UploadWcfService.UpLoadServiceBehavior"> 
  19. <serviceMetadatahttpGetEnabledserviceMetadatahttpGetEnabled="true"/> 
  20. <serviceDebugincludeExceptionDetailInFaultsserviceDebugincludeExceptionDetailInFaults="false"/> 
  21. </behavior> 
  22. </serviceBehaviors> 
  23. </behaviors> 
  24. </system.serviceModel> 
責任編輯:田樹 來源: 博客
相關推薦

2009-07-03 17:15:31

jsp上傳文件

2023-04-26 12:46:43

DockerSpringKubernetes

2011-04-28 09:23:36

REST

2021-07-14 09:00:00

JavaFX開發應用

2011-01-06 10:39:25

.NET程序打包

2022-03-29 11:11:11

TortoisGitGitee碼云

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2025-05-07 00:31:30

2011-04-21 10:32:44

MySQL雙機同步

2021-03-12 10:01:24

JavaScript 前端表單驗證

2020-05-15 08:07:33

JWT登錄單點

2022-12-07 08:42:35

2022-01-08 20:04:20

攔截系統調用

2022-07-27 08:16:22

搜索引擎Lucene

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2011-02-22 14:36:40

ASP.NETmsdnC#
點贊
收藏

51CTO技術棧公眾號

国产成人午夜视频网址| 亚洲一区亚洲二区| 九色视频在线观看免费播放 | 看女生喷水的网站在线观看| 久久久久久久久久久99999| 国产精品yjizz| 视频福利一区| 日韩在线不卡视频| 超碰中文在线| 欧美日韩中文一区| 免费亚色电影在线观看| 91网站在线播放| 咪咪色在线视频| 国产精品综合| 国产视频福利一区| 亚洲婷婷影院| 欧美激情综合亚洲一二区| av伦理在线| 日韩一级片在线观看| 性色视频在线| 亚洲五月六月丁香激情| 羞羞视频立即看| 久久久久久毛片| 久久精品视频16| 成人免费看视频| 国产天堂视频在线观看| 精彩视频一区二区| 欧美欧美一区二区| 久久蜜桃精品| 欧美日韩综合久久| 久久性色av| 日产精品高清视频免费| 亚洲国产高清视频| 久久精品99久久| 欧美视频三区在线播放| 精品国产无码在线| 国产精品视频一区二区三区经| 99国产精品久久一区二区三区| 亚洲最新中文字幕| 国产粉嫩在线观看| 亚洲欧美日韩国产精品| 欧美aaaaa性bbbbb小妇| 亚洲精品不卡在线| 性欧美xxx69hd高清| 亚洲免费电影在线观看| 桃色一区二区| 美女精品视频一区| 波多野结衣欧美| 日韩av色在线| 欧美偷拍综合| 亚洲最大激情中文字幕| 欧美日本一区二区视频在线观看 | 欧美大片在线观看| 国产在线观看av| 亚洲激情在线观看| 亚洲电影有码| 欧美精品videossex性护士| 国产精品久久久久av蜜臀| 日本久久久久久久久久久| 第一sis亚洲原创| 91久久久久久久| 亚洲一区区二区| 亚洲一区精彩视频| 99久久婷婷国产| 老司机aⅴ毛片免费观看| 欧美日韩中文字幕| 欧美xxxx黑人又粗又长| 亚洲性视频网站| 日韩极品少妇| αv一区二区三区| 日韩中文字幕亚洲一区二区va在线| 国产精品夜夜夜爽张柏芝| 91丝袜呻吟高潮美腿白嫩在线观看| 免费高清成人| 欧美人xxxx| 日韩一级特黄| 国产日韩欧美影视| 老**午夜毛片一区二区三区| 日韩av一区二区三区在线| 日韩激情av在线免费观看| 四虎视频在线精品免费网址| 国产亚洲欧美激情| 婷婷六月天丁香| 日本欧美视频| 免费在线超碰| 国产成人激情视频| 不卡日本视频| 亚洲成年人专区| 日本丶国产丶欧美色综合| 九九热最新视频//这里只有精品 | 欧美日韩伦理一区二区| 日本久久久久久| 久久激情中文| xx欧美撒尿嘘撒尿xx| 色综合久久九月婷婷色综合| 欲香欲色天天天综合和网| 国产高清视频一区三区| 久久一二三四| caoporn超碰国产公开| 欧美成人女星排名| 免费成人三级| 伊人婷婷久久| 大荫蒂欧美视频另类xxxx | 欧美性猛交xxxx富婆| 欧美色999| 国产91社区| 国产女同互慰高潮91漫画| 黄色在线免费看| 国产精品成人v| 成人ar影院免费观看视频| 日本视频在线观看| 欧美一区二区.| 福利91精品一区二区三区| 国产鲁鲁视频在线观看免费| 欧美精品在线网站| 日韩精品亚洲专区| 日本韩国欧美三级| 国产一级一区二区| 欧美精品尤物在线观看| swag国产精品一区二区| 国产精品ⅴa有声小说| 欧美视频小说| 精品剧情v国产在线观看在线| 福利视频网站一区二区三区| 在线成人www免费观看视频| 亚洲国内在线| 国产一区免费在线观看| 丁香资源影视免费观看| 一二三四区在线观看| 狠狠噜噜久久| 91麻豆产精品久久久久久 | 好吊日精品视频| 色婷婷狠狠五月综合天色拍| 韩国三级av在线免费观看| 狠狠干婷婷色| 亚洲成色最大综合在线| 在线免费观看成人网| 国产欧美亚洲日本| 日韩av中文在线| 欧美一级理论性理论a| 欧美午夜无遮挡| 亚洲美女av黄| 伦理中文字幕亚洲| 色噜噜狠狠狠综合曰曰曰88av| 亚洲欧美日韩电影| 色激情天天射综合网| 欧美精品粉嫩高潮一区二区| 国产欧美亚洲一区| 老司机一区二区| 激情五月播播久久久精品| 免费看的黄色欧美网站| 性高湖久久久久久久久| 国产精品久久久久久久久久妞妞| 狠狠综合久久av一区二区蜜桃| 女人高潮被爽到呻吟在线观看| 992tv国产精品成人影院| 最新欧美色图| av网站免费在线观看| 爆乳熟妇一区二区三区霸乳| 亚洲成人自拍视频| 久久一区二区精品| 免费激情网址| 国产三级视频在线| 久久电影视频| av黄色在线观看| 91午夜精品| 国产精品免费99久久久| 高清视频在线观看三级| 日韩精品永久网址| 免费观看30秒视频久久| 成人高清在线视频| 日韩av在线网址| 亚洲free性xxxx护士白浆| 亚洲va国产va天堂va久久| 久久男人av资源网站| 欧美亚洲另类在线| 宅男噜噜99国产精品观看免费| 国产免费xxx| 欧美日韩综合久久| 糖心vlog在线免费观看| 亚洲国产资源| 久久uomeier| 国产精品一二三四五| 国产精品素人视频| 色婷婷亚洲一区二区三区| 在线播放精品一区二区三区 | 天堂√中文最新版在线| 日韩大胆人体| 51漫画成人app入口| 8848成人影院| 狠狠操综合网| 3d动漫一区二区三区在线观看| 欧美黄页免费| 国产福利91精品一区二区| 理论片午夜视频在线观看| 成人在线视频区| 午夜日韩激情| 日日夜夜精品免费视频| 亚洲国产电影| 亚洲人成网77777色在线播放|