999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于PowerBuilder下Web文件的傳輸實(shí)現(xiàn)

2011-01-01 00:00:00段益群
軟件工程 2011年5期

摘要:文件的上傳與下載是WEB應(yīng)用開(kāi)發(fā)中的一個(gè)基本需求。本文講述使用PowerBuilder開(kāi)發(fā)COM組件解決WEB應(yīng)用中附件的上傳下載問(wèn)題。

關(guān)鍵詞:WEB應(yīng)用;PowerBuilder;COM組件

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的日趨成熟,以及Internet的迅速發(fā)展,對(duì)數(shù)據(jù)庫(kù)信息的處理已經(jīng)漸漸地由Client/Server模式轉(zhuǎn)向Browser/Server模式,基于WEB方式的計(jì)算機(jī)應(yīng)用已是大勢(shì)所趨。開(kāi)發(fā)B/S結(jié)構(gòu)應(yīng)用程序的工具很多,PowerBuilder就是Sybase公司推出的用于企業(yè)級(jí)應(yīng)用的開(kāi)發(fā)工具[1]。

文件的上傳與下載是WEB應(yīng)用開(kāi)發(fā)中的一個(gè)基本需求。本文以示例簡(jiǎn)述PB的WEBFROM下文件上傳與下載的實(shí)現(xiàn),內(nèi)容涉及如何使用PowerBuilder建立WEB應(yīng)用、使用PowerBuilder開(kāi)發(fā)COM組件、PowerBuilder虛擬文件系統(tǒng),以及WEB方式下文件的上傳與下載。

1 PowerBuilder建立WEB應(yīng)用[2]

PowerBuilder的WEB應(yīng)用構(gòu)建前提是分布式應(yīng)用體系。PowerBuilder的客戶端應(yīng)用分布到WEB 服務(wù)器上,可將Web.PB看作為客戶端應(yīng)用。當(dāng)客戶端應(yīng)用Web.PB被WEB 服務(wù)器激活后,調(diào)PowerBuilder的服務(wù)器應(yīng)用,執(zhí)行在服務(wù)器應(yīng)用中定義的方法,實(shí)現(xiàn)業(yè)務(wù)邏輯,如下圖所示:

基于上述原理,本文實(shí)現(xiàn)簡(jiǎn)單的文件上傳下載WEB應(yīng)用,如圖2所示:

上傳按鈕代碼:

下載按鈕代碼:

2 PowerBuilder虛擬文件系統(tǒng)

網(wǎng)頁(yè)部署后,打開(kāi)瀏覽器,輸入U(xiǎn)RL: http://localhost/pb_myweb/進(jìn)行測(cè)試。單擊上傳按鈕后出現(xiàn)的文件上傳頁(yè)面:

選擇文件,單擊Upload按鈕進(jìn)行上傳,上傳成功后顯示如下,可以在文件列表中看到剛上傳的文件信息:

在文件列表中選擇要下載的文件,單擊下載按鈕,出現(xiàn)下面的文件下載保存窗口,選擇要保存的路徑即可:

經(jīng)過(guò)剛才的測(cè)試,上傳與下載的需求似乎已經(jīng)完成了,接下來(lái)我們打開(kāi)一個(gè)新的頁(yè)面,同樣輸入U(xiǎn)RL: http://localhost/pb_myweb/繼續(xù)進(jìn)行測(cè)試,文件列表為空,再次點(diǎn)刷新按鈕也是一樣。文件沒(méi)有傳上去嗎?問(wèn)題出在哪呢?

這里需要先解釋一下PowerBuilder的虛擬文件系統(tǒng):當(dāng)我們部署一個(gè)PB的WEB應(yīng)用后,IIS虛擬目錄下將生成兩個(gè)目錄,如果WEB應(yīng)用的名稱為pb_myweb,則產(chǎn)生的對(duì)應(yīng)目錄為pb_myweb與pb_myweb_root,pb_myweb目錄內(nèi)存儲(chǔ)的是網(wǎng)頁(yè)腳本及所需第三方dll之類,pb_myweb_root目錄提供文件系統(tǒng)、郵件系統(tǒng)、打印系統(tǒng)服務(wù)等服務(wù),而PB的虛擬文件系統(tǒng)目錄對(duì)應(yīng)的就是pb_myweb_root\\File\\Common,Common目錄下的所有子目錄及文件都是針對(duì)web用戶共享的,第一級(jí)子目錄是根據(jù)要部署的WEB應(yīng)用相關(guān)引用文件所在的盤生成的,一般都會(huì)存在兩個(gè)基本的目錄,一個(gè)為pb_myweb_root\\File\\Common\\c\emp,另外一個(gè)為當(dāng)前程序文件所在的目錄,比如我們的程序放在d:\\2010\\web下,則在IIS下的目錄結(jié)構(gòu)為pb_myweb_root\\File\\Common\\d\\2010\\web。

虛擬文件系統(tǒng)中有兩種文件處理模式:共享模式與復(fù)制模式,可以通過(guò)設(shè)置WEB應(yīng)用的PBWEbFileProcessModel屬性進(jìn)行切換,默認(rèn)為共享模式。用戶打開(kāi)瀏覽器進(jìn)行頁(yè)面訪問(wèn)時(shí), WEB應(yīng)用會(huì)根據(jù)每一次新的訪問(wèn)分配唯一的會(huì)話id,并在pb_myweb_root\\file\\session目錄將創(chuàng)建該會(huì)話的臨時(shí)交互目錄,如果會(huì)話id為1234567,則交互目錄為pb_myweb_root\\file\\session\\1234567,實(shí)際的會(huì)話id為由數(shù)字與字母組成的25個(gè)字節(jié)的字符串:

共享模式下,系統(tǒng)將根據(jù)需要將common目錄中的文件復(fù)制到當(dāng)前會(huì)話產(chǎn)生的臨時(shí)交互目錄中,復(fù)制模式下,當(dāng)發(fā)生第一個(gè)對(duì)文件相關(guān)操作時(shí),common目錄下的所有子目錄及文件都會(huì)一次性復(fù)制到當(dāng)前會(huì)話產(chǎn)生的臨時(shí)交互目錄中;系統(tǒng)還提供了一種兼容機(jī)制,如果common目錄下的文件與當(dāng)前會(huì)話中的文件重名的時(shí)候,只會(huì)顯示、處理當(dāng)前會(huì)話目錄中的文件。

用戶的瀏覽器完全關(guān)閉后,當(dāng)前會(huì)話結(jié)束,IIS中有關(guān)該會(huì)話的臨時(shí)交互目錄及所有子目錄、文件都將自動(dòng)清除[3]。

由上述虛擬文件系統(tǒng)的介紹可以得知,每個(gè)用戶打開(kāi)瀏覽器后看到的文件都是基于各自會(huì)話對(duì)應(yīng)的目錄,上傳與下載的目錄也是在各自的會(huì)話目錄中進(jìn)行,且會(huì)話結(jié)束后,上傳的文件也會(huì)被刪除,由Sybase提供的文檔我們也可以得知,web下的filecopy與filemove之類的文件操作函數(shù)調(diào)用也是基于其虛擬文件系統(tǒng),所有的文件操作也只會(huì)在當(dāng)前會(huì)話目錄中,有什么辦法能使文件存儲(chǔ)到實(shí)際的桌面文件系統(tǒng)中指定的目錄嗎?

3 使用PowerBuilder開(kāi)發(fā)COM組件

經(jīng)過(guò)一段時(shí)間的摸索,筆者找到了一種比較好的辦法:通過(guò)com去實(shí)現(xiàn)虛擬文件系統(tǒng)與桌面文件系統(tǒng)的文件互操作,大致的流程是這樣的:通過(guò)web提供的MapVirtualPath函數(shù)到得虛擬文件系統(tǒng)中的文件對(duì)應(yīng)于實(shí)際的桌面文件系統(tǒng)中的路徑,再通過(guò)com組件來(lái)實(shí)現(xiàn)文件在虛擬文件系統(tǒng)與桌面文件系統(tǒng)中的復(fù)制與移動(dòng)操作。這里我們采用PowerBuilder來(lái)編寫所需的com組件,主要設(shè)計(jì)界面及代碼如下:

com組件的一些參數(shù):

文件復(fù)制代碼:

文件移動(dòng)代碼:

目錄創(chuàng)建代碼:

com組件部署時(shí)選擇編譯成功后自動(dòng)注冊(cè)選項(xiàng)就可以了,如下圖:

Web應(yīng)用中的主頁(yè)面增加兩個(gè)函數(shù): of_getname與of_move:

Of_getname函數(shù)用于從指定路徑中取文件名,代碼如下:

Of_move函數(shù)用于將一組文件轉(zhuǎn)移到指定的目錄中,代碼如下:

原來(lái)的myuploadfiles_callback修改如下:

按照原來(lái)的方式上傳三個(gè)文件,結(jié)果如下:

可以看到通過(guò)com組件已經(jīng)把文件中虛擬目錄中轉(zhuǎn)移到桌面文件系統(tǒng)中的指定目錄,編程人員可以利用com組件擴(kuò)充其他的文件操作,以滿足實(shí)際WEB應(yīng)用的需要。

4 結(jié)束語(yǔ)

文件的上傳與下載是WEB應(yīng)用開(kāi)發(fā)中的一個(gè)基本需求,本文以示例簡(jiǎn)述使用PB實(shí)現(xiàn)文件上傳與下載。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)以及Powerbuilder 開(kāi)發(fā)平臺(tái)技術(shù)的發(fā)展,基于WEB的應(yīng)用已是大勢(shì)所趨。因此,掌握新技術(shù)、利用新術(shù),才能開(kāi)發(fā)出滿足用戶需求、適應(yīng)潮流發(fā)展的應(yīng)用程序。

參考文獻(xiàn)

[1]肖兵.PowerBuilder Internet技術(shù)詳解[M].北京:電子工業(yè)出版社,2002.

[2]戴小波.PowerBuilder開(kāi)發(fā)WEB應(yīng)用實(shí)例[J].河北軟件職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005,7(3):61-63.

[3]鄭阿奇.PowerBuilder實(shí)用教程(第3版)[M].北京:電子工業(yè)出社,2009.

主站蜘蛛池模板: 中文字幕在线观看日本| 激情综合网址| 国产精品无码制服丝袜| 色香蕉影院| 久久久久国色AV免费观看性色| 在线播放91| 亚洲AV成人一区国产精品| 国产毛片基地| 国产黑丝视频在线观看| 国产欧美日韩免费| 91丝袜美腿高跟国产极品老师| 经典三级久久| 国产综合在线观看视频| 亚洲欧美日韩色图| 色天天综合久久久久综合片| 亚洲综合色区在线播放2019| 一级全黄毛片| 97免费在线观看视频| 国产亚洲精品yxsp| 91系列在线观看| 久久黄色一级视频| 色婷婷色丁香| 午夜福利视频一区| 精品1区2区3区| 欧美日本二区| 国产原创第一页在线观看| 美女毛片在线| 亚洲中文字幕无码mv| 欧美日韩午夜| 青青草原国产精品啪啪视频| 亚洲日本精品一区二区| 日韩欧美色综合| 国产成人久久综合777777麻豆| 亚洲欧美日韩综合二区三区| 91精品国产麻豆国产自产在线| 亚洲午夜国产精品无卡| 久久久久国产一级毛片高清板| 深夜福利视频一区二区| 久久77777| 午夜三级在线| 久久免费看片| 园内精品自拍视频在线播放| 亚洲日韩日本中文在线| 精品一区二区三区水蜜桃| 国产va免费精品| 国产乱子伦视频三区| 久久精品视频亚洲| 久久一日本道色综合久久| 91久久夜色精品国产网站| 2021天堂在线亚洲精品专区| 91视频国产高清| 亚洲国产欧洲精品路线久久| 91成人免费观看在线观看| 国产亚洲精品自在久久不卡| 精品欧美日韩国产日漫一区不卡| 欧美亚洲日韩中文| 成人国产一区二区三区| 亚洲欧美精品在线| 亚洲伊人天堂| 666精品国产精品亚洲| 美女高潮全身流白浆福利区| 亚洲第一天堂无码专区| 幺女国产一级毛片| 99久久99视频| 成年人国产视频| 欧美成人一级| 亚洲日本精品一区二区| 成年人国产视频| 最新国语自产精品视频在| 激情综合网址| 国产福利拍拍拍| 精品视频福利| 久久人午夜亚洲精品无码区| 成人国产精品一级毛片天堂| 午夜国产精品视频黄| 成人精品区| 亚洲成人精品在线| 国产成人精品日本亚洲77美色| 在线观看视频一区二区| 影音先锋亚洲无码| 男人天堂伊人网| 国产精选自拍|