一種文件上傳下載方法
【專(zhuān)利摘要】本發(fā)明涉及一種文件上傳下載方法:當(dāng)用戶(hù)通過(guò)瀏覽器頁(yè)面向Web服務(wù)器上傳文件或從Web服務(wù)器下載文件時(shí),瀏覽器將文件上傳、下載命令通過(guò)HTTP傳送到用戶(hù)計(jì)算機(jī)本地的文件代理程序,由文件代理程序完成文件上傳、下載操作處理,包括彈出人機(jī)界面供用戶(hù)選擇要上傳的本地文件或選擇下載的文件在本地的存放位置以及調(diào)用本地API在文件上傳前、文件下載時(shí)對(duì)文件進(jìn)行處理;瀏覽器將文件上傳、下載命令傳送到文件代理程序的同時(shí)將瀏覽器與Web服務(wù)器間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)傳送給文件代理程序,由文件代理程序按Web服務(wù)器約定的瀏覽器提交會(huì)話標(biāo)識(shí)數(shù)據(jù)的方式將會(huì)話標(biāo)識(shí)數(shù)據(jù)包含在提交給Web服務(wù)器的文件上傳、下載HTTP請(qǐng)求中。
【專(zhuān)利說(shuō)明】
一種文件上傳下載方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于Web信息技術(shù)領(lǐng)域,特別是一種在用戶(hù)使用瀏覽器上傳、下載文件的過(guò)程中不通過(guò)瀏覽器插件或控件調(diào)用本地API對(duì)上傳、下載的文件進(jìn)行處理的方法。
【背景技術(shù)】
[0002]人們?cè)谑褂肳eb系統(tǒng)的時(shí)候,經(jīng)常需要通過(guò)瀏覽器上傳文件、下載文件。若在上傳文件、下載文件時(shí),需要調(diào)用本地API(比如本地的密碼模塊)對(duì)上傳或下載的文件進(jìn)行處理(比如對(duì)上傳的文件進(jìn)行加密和/或數(shù)字簽名,對(duì)下載的文件進(jìn)行解密和/或簽名驗(yàn)證),則瀏覽器是無(wú)法直接做到這點(diǎn)的。通常的做法是由專(zhuān)門(mén)開(kāi)發(fā)的瀏覽器插件(Plug-1n)或控件(如ActiveX)來(lái)進(jìn)行文件上傳、文件下載,并在文件上傳、下載過(guò)程中由插件或控件調(diào)用本地API對(duì)上傳、下載的文件進(jìn)程處理。這種方案的最大問(wèn)題是瀏覽器插件或控件依賴(lài)于瀏覽器的類(lèi)型,針對(duì)一種瀏覽器開(kāi)發(fā)的插件或控件在另一個(gè)瀏覽器中不能使用,需要針對(duì)不同的瀏覽器開(kāi)發(fā)相應(yīng)的插件或控件,即這種方案的互操作性差。
[0003]針對(duì)此問(wèn)題,本專(zhuān)利
【申請(qǐng)人】在其專(zhuān)利申請(qǐng)“一種針對(duì)瀏覽器的數(shù)據(jù)和文件加密方法”(專(zhuān)利申請(qǐng)?zhí)?201410427298.4)中提出了相應(yīng)的解決方案,該方案存在的一個(gè)問(wèn)題是:上傳、下載的文件都必須經(jīng)過(guò)瀏覽器,相當(dāng)進(jìn)行了兩次文件上載或下載傳輸,上傳文件時(shí),文件從瀏覽器傳輸?shù)奖镜卮沓绦?,然后從本地代理程序再上傳到Web服務(wù)器,或者下載文件時(shí),文件從Web服務(wù)器下載到本地代理程序,然后從本地代理程序再傳輸?shù)綖g覽器;這樣不但效率低,而且額外占用了系統(tǒng)資源(如內(nèi)存資源)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提出一種在用戶(hù)使用瀏覽器上傳、下載文件過(guò)程中不通過(guò)瀏覽器插件或控件就能調(diào)用本地API對(duì)上傳、下載的文件進(jìn)行處理的方法,以克服現(xiàn)有技術(shù)的不足。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是:一種文件上傳下載方法,所述方法又包括文件上傳方法和文件下載方法。
[0006]文件上傳方法具體如下:
[0007]當(dāng)用戶(hù)通過(guò)點(diǎn)擊瀏覽器頁(yè)面上的文件上傳按鈕或指示向Web服務(wù)器上傳一個(gè)文件時(shí),瀏覽器將文件上傳命令、文件上傳的目標(biāo)URL(Uniform Resource Locator,或Universal Resource Locator)以及瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)通過(guò)HTTP請(qǐng)求提交到用戶(hù)計(jì)算機(jī)本地的文件代理程序;文件代理程序接收到文件上傳命令后,彈出一個(gè)人機(jī)交互界面讓用戶(hù)選擇要上傳的本地文件;用戶(hù)通過(guò)人機(jī)交互界面選擇要上傳的文件后,文件代理程序讀取本地文件,調(diào)用本地API對(duì)文件進(jìn)行處理(如對(duì)文件進(jìn)行加密和/或數(shù)字簽名),然后根據(jù)文件上傳的目標(biāo)URL將處理后的文件上傳到Web服務(wù)器;在上傳文件到Web服務(wù)器的過(guò)程中,文件代理程序按Web服務(wù)器約定的瀏覽器提交會(huì)話標(biāo)識(shí)數(shù)據(jù)的方式將將瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)包含在文件上傳HTTP請(qǐng)求中;
[0008]文件下載方法如下:
[0009]當(dāng)用戶(hù)點(diǎn)擊瀏覽器頁(yè)面上的文件下載按鈕或鏈接從Web服務(wù)器下載一個(gè)文件時(shí),瀏覽器將文件下載命令、指示文件在Web服務(wù)器中位置的URL(Uniform Resource Locator,或Universal Resource Locator)以及瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)通過(guò)HTTP請(qǐng)求提交到用戶(hù)計(jì)算機(jī)本地的文件代理程序;文件代理程序接收到文件下載命令后,彈出一個(gè)人機(jī)交互界面讓用戶(hù)選擇下載文件在本地的存放位置;在用戶(hù)通過(guò)人機(jī)交互界面選擇下載文件在本地的存放位置后,文件代理程序向Web服務(wù)器提交文件下載HTTP請(qǐng)求,請(qǐng)求中有指示文件在Web服務(wù)器中位置的URL以及按Web服務(wù)器約定的瀏覽器提交會(huì)話標(biāo)識(shí)數(shù)據(jù)的方式提交的瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù);文件代理程序接收到從Web服務(wù)器下載的文件后,調(diào)用本地API對(duì)下載傳的文件(數(shù)據(jù))進(jìn)行處理(如對(duì)文件進(jìn)行解密和/或數(shù)字簽名驗(yàn)證),然后將處理后的文件保存在用戶(hù)通過(guò)人機(jī)交互界面選擇的本地存放位置;
[0010]所述Web服務(wù)器是一個(gè)Web信息系統(tǒng)或應(yīng)用系統(tǒng)的服務(wù)端系統(tǒng);
[0011]所述文件代理程序是一個(gè)運(yùn)行在用戶(hù)計(jì)算機(jī)本地、在用戶(hù)通過(guò)瀏覽器上傳、下載文件過(guò)程中調(diào)用本地API對(duì)上傳、下載的文件進(jìn)行處理并最終完成文件上傳、下載處理的程序;
[0012]所述會(huì)話標(biāo)識(shí)數(shù)據(jù)是包含有Web系統(tǒng)與用戶(hù)瀏覽器之間會(huì)話的會(huì)話標(biāo)識(shí)符(Sess1n ID)及其它會(huì)話相關(guān)信息的數(shù)據(jù);所述其它會(huì)話相關(guān)信息是用于限定會(huì)話的信息。
[0013]若在文件上傳、下載處理過(guò)程中,瀏覽器提交給本地文件代理程序的會(huì)話標(biāo)識(shí)數(shù)據(jù)是經(jīng)Web服務(wù)器使用用戶(hù)的加密密鑰加密后的數(shù)據(jù),則所述文件代理程序在接收到瀏覽器提交的加密后的會(huì)話標(biāo)識(shí)數(shù)據(jù)后,使用用戶(hù)的解密密鑰解密獲得會(huì)話標(biāo)識(shí)數(shù)據(jù)。
[0014]從以上
【發(fā)明內(nèi)容】
可看到,基于本發(fā)明的方法,當(dāng)用戶(hù)通過(guò)瀏覽器上傳文件時(shí),Web瀏覽器不直接將文件上傳到Web服務(wù)器,而是由本地的文件代理程序進(jìn)行上傳操作并在上傳操作前調(diào)用本地API對(duì)文件進(jìn)行處理;而當(dāng)用戶(hù)通過(guò)瀏覽器下載文件時(shí),Web瀏覽器不直接從Web服務(wù)器下載文件,而是由本地的文件代理程序進(jìn)行下載操作并在文件下載后調(diào)用本地API對(duì)文件進(jìn)行處理;基于本發(fā)明的方法,當(dāng)用戶(hù)通過(guò)瀏覽器上傳、下載文件且需要調(diào)用本地API對(duì)上傳、下載的文件進(jìn)行處理時(shí),瀏覽器無(wú)需使用插件或控件調(diào)用本地API,這就大大增加了文件上傳、下載Web頁(yè)面的適用性,不受特定瀏覽器類(lèi)型的限制。與專(zhuān)利申請(qǐng)“一種針對(duì)瀏覽器的數(shù)據(jù)和文件加密方法”(專(zhuān)利申請(qǐng)?zhí)?201410427298.4)中的方案不同,在本發(fā)明中,上傳、下載的文件都不經(jīng)過(guò)瀏覽器,這樣不但提高了文件上傳、下載的效率(速度更快),而且減少了對(duì)系統(tǒng)資源的占用。
【附圖說(shuō)明】
[0015]圖1為本發(fā)明的方法示意圖。
【具體實(shí)施方式】
[0016]下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。
[0017]瀏覽器與文件代理程序之間的HTTP通信可通過(guò)自動(dòng)HTTP POST、指向本地的頁(yè)面鏈接(HTTP GET)、腳本程序?qū)崿F(xiàn),包括使用HTML框架(FRAME)、AJAX等;采用腳本程序與本地文件代理程序通過(guò)HTTP需要解決跨域腳本(Cross Domain Script)問(wèn)題。所有這些,在許多的公開(kāi)資料中有介紹,在互聯(lián)網(wǎng)中也許多這方面的信息。
[0018]瀏覽器向本地文件代理程序傳遞的表述上傳或下載文件在Web服務(wù)器中位置的URL、瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)、需要調(diào)用的本地API指示(如哪個(gè)API模塊及接口函數(shù)名稱(chēng))及調(diào)用本地API的參數(shù)等信息可以編碼在提交給本地文件代理程序的HTTP請(qǐng)求的URL中,如編碼在路徑、Query String中,或者放置在提交文件代理程序的FORM數(shù)據(jù)中,或者放在自定義的HTTP頭部中(由腳本生成HTTP請(qǐng)求時(shí))。
[0019]瀏覽器通過(guò)HTTP請(qǐng)求提交給本地文件代理程序的瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù),由瀏覽器通過(guò)腳本程序獲得,或者由Web服務(wù)器返回到頁(yè)面代碼中(如JavaScrypt代碼中)。
[0020]若在文件上傳、下載處理過(guò)程中,瀏覽器提交給本地文件代理程序的會(huì)話標(biāo)識(shí)數(shù)據(jù)是經(jīng)Web服務(wù)器使用用戶(hù)的加密密鑰加密后的數(shù)據(jù),則加密密鑰可以是用戶(hù)的公鑰或者一個(gè)對(duì)稱(chēng)密鑰。
[0021]若Web服務(wù)器對(duì)會(huì)話標(biāo)識(shí)數(shù)據(jù)加密使用的用戶(hù)加密密鑰是公鑰,則用戶(hù)的解密密鑰是對(duì)應(yīng)的私鑰,Web服務(wù)器通過(guò)瀏覽器通過(guò)HTTP請(qǐng)求、響應(yīng)從用戶(hù)計(jì)算機(jī)本地的文件代理程序獲得加密密鑰(即公鑰),而文件代理程序從本地證書(shū)庫(kù)或密碼模塊獲取用戶(hù)數(shù)字證書(shū)或公鑰,獲取過(guò)程中文件代理程序通過(guò)人機(jī)交互界面供用戶(hù)在可用的數(shù)字證書(shū)或公鑰中選擇,比如,顯示有私鑰的數(shù)字證書(shū)或公鑰供用戶(hù)選擇;或者Web服務(wù)器的用戶(hù)帳戶(hù)數(shù)據(jù)中保存有用戶(hù)的公鑰,Web服務(wù)器通過(guò)用戶(hù)的帳戶(hù)信息獲得加密密鑰(即公鑰)
[0022]若Web服務(wù)器對(duì)會(huì)話標(biāo)識(shí)數(shù)據(jù)加密使用的用戶(hù)加密密鑰是對(duì)稱(chēng)密鑰,則用戶(hù)的解密密鑰是同樣的密鑰,Web服務(wù)器從用戶(hù)的帳戶(hù)數(shù)據(jù)獲得加密密鑰,比如從口令導(dǎo)出對(duì)稱(chēng)密鑰。
[0023]其他未說(shuō)明的具體技術(shù)實(shí)施,對(duì)于相關(guān)領(lǐng)域的技術(shù)人員而言是眾所周知,不言自明的。
【主權(quán)項(xiàng)】
1.一種文件上傳方法,其特征在于,該文件上傳方法包括以下步驟: 當(dāng)用戶(hù)通過(guò)點(diǎn)擊瀏覽器頁(yè)面上的文件上傳按鈕或指示向Web服務(wù)器上傳一個(gè)文件時(shí),瀏覽器將文件上傳命令、文件上傳的目標(biāo)URL以及瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)通過(guò)HTTP請(qǐng)求提交到用戶(hù)計(jì)算機(jī)本地的文件代理程序; 文件代理程序接收到文件上傳命令后,彈出一個(gè)人機(jī)交互界面以讓用戶(hù)選擇要上傳的本地文件; 用戶(hù)通過(guò)人機(jī)交互界面選擇要上傳的文件后,文件代理程序讀取本地文件,調(diào)用本地API對(duì)文件進(jìn)行處理,然后根據(jù)文件上傳的目標(biāo)URL將處理后的文件上傳到Web服務(wù)器;在上傳文件到Web服務(wù)器的過(guò)程中,文件代理程序按Web服務(wù)器約定的瀏覽器提交會(huì)話標(biāo)識(shí)數(shù)據(jù)的方式將瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)包含在文件上傳HTTP請(qǐng)求中。2.根據(jù)權(quán)利要求1所述的文件上傳方法,其特征在于,若在文件上傳處理過(guò)程中,瀏覽器提交給本地文件代理程序的會(huì)話標(biāo)識(shí)數(shù)據(jù)是經(jīng)Web服務(wù)器使用用戶(hù)的加密密鑰加密后的數(shù)據(jù),則所述文件代理程序在接收到瀏覽器提交的加密后的會(huì)話標(biāo)識(shí)數(shù)據(jù)后,使用用戶(hù)的解密密鑰解密獲得會(huì)話標(biāo)識(shí)數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述的文件上傳方法,其特征在于,若Web服務(wù)器對(duì)會(huì)話標(biāo)識(shí)數(shù)據(jù)加密使用的用戶(hù)加密密鑰是公鑰,則用戶(hù)的解密密鑰是對(duì)應(yīng)的私鑰,Web服務(wù)器通過(guò)瀏覽器通過(guò)HTTP請(qǐng)求、響應(yīng)從用戶(hù)計(jì)算機(jī)本地的文件代理程序獲得加密密鑰,或者Web服務(wù)器通過(guò)用戶(hù)的帳戶(hù)信息獲得加密密鑰即公鑰。4.根據(jù)權(quán)利要求2所述的文件上傳方法,其特征在于,若Web服務(wù)器對(duì)會(huì)話標(biāo)識(shí)數(shù)據(jù)加密使用的用戶(hù)加密密鑰是對(duì)稱(chēng)密鑰,則用戶(hù)的解密密鑰是同樣的密鑰,Web服務(wù)器從用戶(hù)的帳戶(hù)數(shù)據(jù)獲得加密密鑰。5.一種文件下載方法,其特征在于,該文件下載方法包括以下步驟: 當(dāng)用戶(hù)點(diǎn)擊瀏覽器頁(yè)面上的文件下載按鈕或鏈接從Web服務(wù)器下載一個(gè)文件時(shí),瀏覽器將文件下載命令、指示文件在Web服務(wù)器中位置的URL以及瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù)通過(guò)HTTP請(qǐng)求提交到用戶(hù)計(jì)算機(jī)本地的文件代理程序; 文件代理程序接收到文件下載命令后,彈出一個(gè)人機(jī)交互界面以讓用戶(hù)選擇下載文件在本地的存放位置; 在用戶(hù)通過(guò)人機(jī)交互界面選擇下載文件在本地的存放位置后,文件代理程序向Web月艮務(wù)器提交文件下載HTTP請(qǐng)求,該文件下載HTTP請(qǐng)求中包含指示文件在Web服務(wù)器中位置的URL以及按Web服務(wù)器約定的瀏覽器提交會(huì)話標(biāo)識(shí)數(shù)據(jù)的方式提交的瀏覽器與Web服務(wù)器之間會(huì)話的會(huì)話標(biāo)識(shí)數(shù)據(jù); 文件代理程序接收到從Web服務(wù)器下載的文件后,調(diào)用本地API對(duì)下載傳的文件進(jìn)行處理,然后將處理后的文件保存在用戶(hù)通過(guò)人機(jī)交互界面選擇的本地存放位置。6.根據(jù)權(quán)利要求5所述的文件下載方法,其特征是: 若在文件下載處理過(guò)程中,瀏覽器提交給本地文件代理程序的會(huì)話標(biāo)識(shí)數(shù)據(jù)是經(jīng)Web服務(wù)器使用用戶(hù)的加密密鑰加密后的數(shù)據(jù),則所述文件代理程序在接收到瀏覽器提交的加密后的會(huì)話標(biāo)識(shí)數(shù)據(jù)后,使用用戶(hù)的解密密鑰解密獲得會(huì)話標(biāo)識(shí)數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的文件上傳下載方法,其特征是:若Web服務(wù)器對(duì)會(huì)話標(biāo)識(shí)數(shù)據(jù)加密使用的用戶(hù)加密密鑰是公鑰,則用戶(hù)的解密密鑰是對(duì)應(yīng)的私鑰,Web服務(wù)器通過(guò)瀏覽器通過(guò)HTTP請(qǐng)求、響應(yīng)從用戶(hù)計(jì)算機(jī)本地的文件代理程序獲得加密密鑰,或者Web服務(wù)器通過(guò)用戶(hù)的帳戶(hù)信息獲得加密密鑰即公鑰。8.根據(jù)權(quán)利要求6所述的文件上傳下載方法,其特征是:若Web服務(wù)器對(duì)會(huì)話標(biāo)識(shí)數(shù)據(jù)加密使用的用戶(hù)加密密鑰是對(duì)稱(chēng)密鑰,則用戶(hù)的解密密鑰是同樣的密鑰,Web服務(wù)器從用戶(hù)的帳戶(hù)數(shù)據(jù)獲得加密密鑰。
【文檔編號(hào)】H04L29/08GK105872102SQ201610395563
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2016年6月6日
【發(fā)明人】龍毅宏, 李超
【申請(qǐng)人】武漢理工大學(xué)