亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

web服務(wù)中實(shí)現(xiàn)文件的上傳

系統(tǒng) 1667 0

?

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

由于項(xiàng)目需要放棄了項(xiàng)目初期擬定的用 asp.net 移動 WEB 應(yīng)用程序的開發(fā)方式 , 而改用智能設(shè)備應(yīng)用程序來開發(fā)產(chǎn)品 .

其實(shí)智能設(shè)備應(yīng)用程序開發(fā)與 桌面應(yīng)用程序非常類似 , 也是一種 win 窗體開發(fā) .

該項(xiàng)目為了保持 Pocket PC 中的數(shù)據(jù)和遠(yuǎn)程服務(wù)器的數(shù)據(jù)保持一致 , 用到了 web 服務(wù)技術(shù) .

其中涉及一個圖片上傳功能的實(shí)現(xiàn) , 就是把手機(jī)拍攝的圖片及時發(fā)送到遠(yuǎn)程服務(wù)器 .

?

讓我們先建立一個 WEB 服務(wù) SmartDeviceMobileReportWebService

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

?1 ???????? /**/ /// ? <summary>
?2 ???????? /// ?上傳文件
?3 ???????? /// ? </summary>
?4 ???????? /// ? <param?name="fs"> 文件的字節(jié)數(shù)組 </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 ???????????????? // 定義并實(shí)例化一個內(nèi)存流,以存放提交上來的字節(jié)數(shù)組。
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 ???????????????? // 定義實(shí)際文件對象,保存上載的文件。
26 ???????????????? string ?fileName? = ??dir? + ?FileName;
27
28 ???????????????? // 創(chuàng)建文件流,要是上載的文件存在就覆蓋
29 ????????????????FileStream?fileStream? = ? new ?FileStream(fileName,?FileMode.Create);
30
31 ???????????????? // 把內(nèi)內(nèi)存里的數(shù)據(jù)寫入文件流
32 ????????????????memoryStream.WriteTo(fileStream);
33
34 ???????????????? // 關(guān)閉流文件
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 服務(wù) 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 ???????????????? // 調(diào)用WEB服務(wù)
20 ????????????????ReportWebService.ReportWebService?r = new ?ReportWebService.ReportWebService();
21 ????????????
22 ???????????????? // 要上傳的文件名
23 ???????????????? string ?fileName = fileFullName.Substring(i + 1 );
24 ????????????
25 ???????????????? // 創(chuàng)建文件的實(shí)例
26 ????????????????FileInfo?f = new ?FileInfo(fileFullName);
27 ????????????
28 ???????????????? // 創(chuàng)建只讀?FileStream
29 ????????????????FileStream??fileStream? = ?f.OpenRead()?;
30 ????????????????
31 ???????????????? byte []?byteArray = ? new ? byte [f.Length];
32 ????????????????????
33 ???????????????? // 從流中讀取字節(jié)并將該數(shù)據(jù)寫入給定數(shù)組中
34 ????????????????fileStream.Read(byteArray, 0 ,Convert.ToInt32(?f.Length?));
35
36 ???????????????? // 開始調(diào)用web服務(wù)器上的公用方法
37 ???????????????? if ?(? ! r.UploadFile(byteArray,fileName)?)
38 ???????????????? {
39 ????????????????????MessageBox.Show( " 數(shù)據(jù)上傳失敗! " );
40 ????????????????}

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

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

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

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

圖片效果如下:



選擇文件



上傳數(shù)據(jù)成功

web服務(wù)中實(shí)現(xiàn)文件的上傳


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色网站在线观看 | 亚洲综合网站 | 男女xxⅹ爽免费视频 | 99精品在线| 欧美aa一级 | 99r视频里面只有精品 | 成人国产精品一级毛片了 | 天天视频黄 | 欧美一级毛片在线观看 | 伊人精品视频一区二区三区 | 色福利视频 | 中文字幕精品视频在线观 | 久久影院一区 | 久久视屏这里只有精品6国产 | 久久香蕉国产 | 成人另类 | 亚洲国产男人本色在线观看的a站 | 亚洲国产高清美女在线观看 | 亚洲免费人成在线视频观看 | 亚洲va国产va欧美va综合 | 亚洲综合插插 | 成人美女隐私免费 | 亚洲最新视频在线观看 | 日韩麻豆 | 亚洲欧美高清 | 亚洲在线视频一区 | 国产区一区二区三 | 四虎永久免费地址ww417 | 日韩一级欧美一级一级国产 | 看全色黄大色黄大片色责看的 | 亚洲香蕉久久一区二区 | 欧美亚洲国产精品久久 | 四虎成人免费视频 | 久久精品无码一区二区三区 | 欧美日韩激情在线一区 | 免费播放欧美毛片 | 全亚洲最大的免费私人影剧院 | 国产综合精品一区二区 | 成人合集大片bd高清在线观看 | 日本免费黄色小视频 | 美女美女高清毛片视频 |