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.

主站蜘蛛池模板: 四虎成人精品在永久免费| 国产一级视频久久| 人妻中文字幕无码久久一区| 欧美在线中文字幕| 亚洲婷婷六月| 午夜在线不卡| 2020极品精品国产 | 免费看a毛片| h网站在线播放| 亚洲色图狠狠干| 久久国产V一级毛多内射| 精品无码日韩国产不卡av| 免费人成在线观看成人片| 中文字幕无码av专区久久| 国产乱子伦精品视频| 国产精品一区二区不卡的视频| 四虎永久免费地址| 精品剧情v国产在线观看| 国产美女久久久久不卡| 麻豆国产精品视频| www.亚洲一区| 九九九国产| 四虎精品国产AV二区| 久久精品人人做人人爽| 四虎亚洲国产成人久久精品| 日韩黄色在线| 亚洲系列无码专区偷窥无码| 国产swag在线观看| 国产啪在线| 蜜桃臀无码内射一区二区三区| 免费无码AV片在线观看中文| 欧美日韩国产精品综合 | 日韩精品专区免费无码aⅴ| 国产人人乐人人爱| 欧美中文字幕第一页线路一| 中文毛片无遮挡播放免费| 亚洲成肉网| 国产黄在线免费观看| 日韩在线中文| 日韩人妻少妇一区二区| 欧美一区精品| 久久久精品国产SM调教网站| 亚洲动漫h| 国产女人在线| 免费在线看黄网址| 在线观看国产精品一区| 日韩麻豆小视频| 不卡的在线视频免费观看| 91精品啪在线观看国产91九色| 制服丝袜亚洲| 欧美成人精品在线| 成年片色大黄全免费网站久久| 欧美成人精品在线| 日韩一级毛一欧美一国产 | 亚洲国产精品无码AV| 欧美国产精品不卡在线观看 | 亚洲无限乱码一二三四区| 亚洲欧美在线看片AI| 狠狠干综合| 91精品综合| 亚洲高清在线天堂精品| 高潮毛片免费观看| 精品国产女同疯狂摩擦2| 91口爆吞精国产对白第三集| 国产精品综合久久久| 日本不卡视频在线| 蜜臀AV在线播放| 免费观看男人免费桶女人视频| 国产激情无码一区二区免费| 超碰色了色| 看av免费毛片手机播放| 日本午夜影院| 日韩视频精品在线| 国产精品高清国产三级囯产AV| 999在线免费视频| 正在播放久久| 亚洲最大情网站在线观看 | 亚洲天堂精品视频| 免费看一级毛片波多结衣| 久久黄色影院| 久久黄色免费电影| 最新日本中文字幕|