黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

web服務中實現文件的上傳

系統 2191 0

?

最近工作原因要用 vs2003 來開發 Pocket PC 方面的軟件 .

由于項目需要放棄了項目初期擬定的用 asp.net 移動 WEB 應用程序的開發方式 , 而改用智能設備應用程序來開發產品 .

其實智能設備應用程序開發與 桌面應用程序非常類似 , 也是一種 win 窗體開發 .

該項目為了保持 Pocket PC 中的數據和遠程服務器的數據保持一致 , 用到了 web 服務技術 .

其中涉及一個圖片上傳功能的實現 , 就是把手機拍攝的圖片及時發送到遠程服務器 .

?

讓我們先建立一個 WEB 服務 SmartDeviceMobileReportWebService

在其中定義一個方法 UploadFile負責接收上傳的圖片,代碼如下:

?1 ???????? /**/ /// ? <summary>
?2 ???????? /// ?上傳文件
?3 ???????? /// ? </summary>
?4 ???????? /// ? <param?name="fs"> 文件的字節數組 </param>
?5 ???????? /// ? <param?name="FileName"> 文件名稱 </param>
?6 ???????? /// ? <param?name="content"> 說明 </param>
?7 ???????? /// ? <returns> 是否文件上載成功 </returns>

?8 ????????[WebMethod(Description = " 提供 文件上傳 的方法,返回文件是否上載成功 " )]
?9 ???????? public ? bool ?UploadFile( byte []?b, string ?FileName)
10 ???????? {
11 ???????????? try
12 ???????????? {
13 ???????????????? // 定義并實例化一個內存流,以存放提交上來的字節數組。
14 ????????????????MemoryStream?memoryStream? = ? new ?MemoryStream(b);
15
16 ???????????????? // 文件存放目錄
17 ???????????????? string ?dir = @" d:\pic\ " ;
18
19 ???????????????? // 判斷文件存放目錄是否存在
20 ???????????????? if ?(?? ! Directory.Exists(dir)?)
21 ???????????????? {
22 ???????????????????? return ? false ;
23 ????????????????}

24
25 ???????????????? // 定義實際文件對象,保存上載的文件。
26 ???????????????? string ?fileName? = ??dir? + ?FileName;
27
28 ???????????????? // 創建文件流,要是上載的文件存在就覆蓋
29 ????????????????FileStream?fileStream? = ? new ?FileStream(fileName,?FileMode.Create);
30
31 ???????????????? // 把內內存里的數據寫入文件流
32 ????????????????memoryStream.WriteTo(fileStream);
33
34 ???????????????? // 關閉流文件
35 ????????????????memoryStream.Close();
36 ????????????????fileStream.Close();
37 ????????????????
38 ????????????????fileStream? = ? null ;
39 ????????????????memoryStream? = ? null ;
40 ????????????????
41 ???????????????? return ? true ;
42 ????????????}

43 ???????????? catch (?Exception?ex?)
44 ???????????? {
45 ???????????????? string ?s = ex.Message;
46 ???????????????? return ? false ;
47 ????????????}

48 ????????}


?

再到我的 Pocket PC 客戶端

先引用 web 服務 http://10.10.10.191/SmartDeviceMobileReportWebService/ReportWebService.asmx 并命名為 ReportWebService

編寫上傳按鈕事件

?1 // 上傳按鈕事件
?2 ???????? private ? void ?uploadbutton_Click( object ?sender,?System.EventArgs?e)
?3 ???????? {
?4 ???????????? // 要上傳的文件
?5 ???????????? string ?fileFullName = this .fileMsglabel.Text;
?6 ????????????
?7 ???????????? if ?(? ! File.Exists(fileFullName)?)
?8 ???????????? {
?9 ????????????????MessageBox.Show( " 請選擇圖片 " );
10 ???????????????? return ;
11 ????????????}

12
13 ???????????? int ?i = fileFullName.LastIndexOf( " \\ " );
14 ????????????
15 ????????????Cursor.Current = Cursors.WaitCursor;
16
17 ???????????? try
18 ???????????? {
19 ???????????????? // 調用WEB服務
20 ????????????????ReportWebService.ReportWebService?r = new ?ReportWebService.ReportWebService();
21 ????????????
22 ???????????????? // 要上傳的文件名
23 ???????????????? string ?fileName = fileFullName.Substring(i + 1 );
24 ????????????
25 ???????????????? // 創建文件的實例
26 ????????????????FileInfo?f = new ?FileInfo(fileFullName);
27 ????????????
28 ???????????????? // 創建只讀?FileStream
29 ????????????????FileStream??fileStream? = ?f.OpenRead()?;
30 ????????????????
31 ???????????????? byte []?byteArray = ? new ? byte [f.Length];
32 ????????????????????
33 ???????????????? // 從流中讀取字節并將該數據寫入給定數組中
34 ????????????????fileStream.Read(byteArray, 0 ,Convert.ToInt32(?f.Length?));
35
36 ???????????????? // 開始調用web服務器上的公用方法
37 ???????????????? if ?(? ! r.UploadFile(byteArray,fileName)?)
38 ???????????????? {
39 ????????????????????MessageBox.Show( " 數據上傳失敗! " );
40 ????????????????}

41 ???????????????? else
42 ???????????????? {
43 ????????????????????MessageBox.Show( " 數據上傳成功! " );
44 ????????????????????????????????????}

45
46 ???????????????? // 關閉流文件
47 ????????????????fileStream.Close();
48 ????????????????fileStream = null ;
49
50 ????????????}

51 ???????????? catch
52 ???????????? {
53 ????????????????MessageBox.Show( " 數據上傳失敗! " );
54 ????????????}

55 ???????????? finally
56 ???????????? {
57 ????????????????Cursor.Current = Cursors.Default;
58 ????????????}
????
59 ????????}

圖片效果如下:



選擇文件



上傳數據成功

web服務中實現文件的上傳


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論