本申請涉及通信技術(shù)領(lǐng)域,尤其涉及一種文件上傳處理方法及裝置。
背景技術(shù):
隨著移動通信技術(shù)的飛速發(fā)展和移動多媒體時代的到來,手機作為人們必備的移動通信工具,已從簡單的通話工具向智能化發(fā)展,演變成一個移動的信息收集和處理平臺。在當前移動互聯(lián)網(wǎng)時代,手機作為一種常見的終端,充當重要的角色。
在云計算時代,通過手機進行圖片上傳在不同業(yè)務(wù)場景下得到廣泛應(yīng)用。傳統(tǒng)的圖片上傳過程包括前端處理過程和后端處理過程,前端處理過程是指手機進行圖片處理(比如圖片特效處理、文件壓縮等)后發(fā)送,后端處理過程在服務(wù)器端進行,服務(wù)器接收到上傳的圖片數(shù)據(jù)后,在服務(wù)器端生成臨時文件,然后通過應(yīng)用程序?qū)⑴R時文件的數(shù)據(jù)讀取出來,將圖片規(guī)格等圖片描述信息寫入數(shù)據(jù)庫,再將圖片內(nèi)容數(shù)據(jù)向圖片存儲系統(tǒng)發(fā)送,由圖片存儲系統(tǒng)進行存儲。
由于手機所在的網(wǎng)絡(luò)有可能是2g網(wǎng)絡(luò)、3g網(wǎng)絡(luò)或無線局域網(wǎng)等,網(wǎng)絡(luò)的穩(wěn)定性具有不確定性,而且圖片上傳過程中需要在服務(wù)器的內(nèi)存中進行緩存,因此往往導(dǎo)致圖片上傳時延比較長,上傳效率較低。而且,在服務(wù)器中緩存臨時文件,也會占用服務(wù)器大量內(nèi)存資源。
申請內(nèi)容
本申請實施例提供了一種文件上傳處理方法及裝置,用以提高文件上傳效率。
本申請實施例提供的文件上傳處理方法,包括:
獲取移動終端發(fā)送的文件數(shù)據(jù);
獲取所述文件數(shù)據(jù)中的文件描述信息以及文件內(nèi)容;
根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容存儲到數(shù)據(jù)庫中;其中,所述數(shù)據(jù)庫中,所述文件描述信息與所述文件內(nèi)容相關(guān)聯(lián)。
優(yōu)選地,所述文件數(shù)據(jù)為圖片文件數(shù)據(jù),所述文件描述信息和文件內(nèi)容為圖片文件的文件描述信息和圖片內(nèi)容。
優(yōu)選地,獲取到的圖片文件數(shù)據(jù)中包括協(xié)議部分和文件部分,所述文件部分包括文件描述部分和文件內(nèi)容部分,相鄰部分之間用分隔符分割;
所述獲取所述圖片文件數(shù)據(jù)中的文件描述信息以及圖片內(nèi)容,包括:
根據(jù)相鄰部分之間的分隔符,確定所述圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置;
根據(jù)確定出的所述圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置,獲取所述圖片文件數(shù)據(jù)中的文件描述信息以及圖片內(nèi)容。
優(yōu)選地,所述根據(jù)獲取到的文件描述信息,將獲取到的圖片內(nèi)容存儲到數(shù)據(jù)庫中,包括:
根據(jù)獲取到的文件描述信息查詢所述數(shù)據(jù)庫中的相應(yīng)記錄;
若未查詢到,則在所述數(shù)據(jù)庫中創(chuàng)建一條記錄,將獲取到的文件描述信息存儲到該條記錄的文件描述字段,將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段;
若查詢到,則將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段。
優(yōu)選地,所述根據(jù)獲取到的文件描述信息,存儲獲取到的圖片內(nèi)容到數(shù)據(jù)庫之后,還包括:
使用所述移動終端的客戶端用戶身份信息調(diào)用服務(wù)器端的應(yīng)用程序接口,所述服務(wù)器端的應(yīng)用程序接口用于在被調(diào)用后根據(jù)所述客戶端用戶身份信息將所述移動終端上傳的圖片應(yīng)用于客戶端應(yīng)用程序。
優(yōu)選地,所述文件描述信息包括以下信息中的一種或組合:文件名稱、文 件類型、圖片大小。
優(yōu)選地,所述圖片內(nèi)容為二級制數(shù)據(jù)。
本申請實施例提供的服務(wù)器,包括:
第一獲取模塊,用于獲取移動終端發(fā)送的文件數(shù)據(jù);
第二獲取模塊,用于獲取所述文件數(shù)據(jù)中的文件描述信息以及文件內(nèi)容;
存儲模塊,用于根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容存儲到數(shù)據(jù)庫中;其中,所述數(shù)據(jù)庫中,所述文件描述信息與所述文件內(nèi)容相關(guān)聯(lián)。
優(yōu)選地,所述文件數(shù)據(jù)為圖片文件數(shù)據(jù),所述文件描述信息和文件內(nèi)容為圖片文件的文件描述信息和圖片內(nèi)容。
優(yōu)選地,獲取到的圖片文件數(shù)據(jù)中包括協(xié)議部分和文件部分,所述文件部分包括文件描述部分和文件內(nèi)容部分,相鄰部分之間用分隔符分割;
所述第二獲取模塊具體用于:
根據(jù)相鄰部分之間的分隔符,確定所述圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置;
根據(jù)確定出的所述圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置,獲取所述圖片文件數(shù)據(jù)中的文件描述信息以及圖片內(nèi)容。
優(yōu)選地,所述存儲模塊具體用于:
根據(jù)獲取到的文件描述信息查詢所述數(shù)據(jù)庫中的相應(yīng)記錄;
若未查詢到,則在所述數(shù)據(jù)庫中創(chuàng)建一條記錄,將獲取到的文件描述信息存儲到該條記錄的文件描述字段,將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段;
若查詢到,則將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段。
優(yōu)選地,還包括:
調(diào)用模塊,用于在根據(jù)獲取到的文件描述信息,存儲獲取到的圖片內(nèi)容到數(shù)據(jù)庫之后,使用所述移動終端的客戶端用戶身份信息調(diào)用服務(wù)器端的應(yīng)用程序接口,所述服務(wù)器端的應(yīng)用程序接口用于在被調(diào)用后根據(jù)所述客戶端用戶身 份信息將所述移動終端上傳的圖片應(yīng)用于客戶端應(yīng)用程序。
優(yōu)選地,所述文件描述信息包括以下信息中的一種或組合:文件名稱、文件類型、圖片大小。
優(yōu)選地,所述圖片內(nèi)容為二級制數(shù)據(jù)。
本申請的上述實施例中,當服務(wù)器端獲取到移動終端發(fā)送的文件數(shù)據(jù)后,獲取該文件數(shù)據(jù)中的文件描述信息以及文件內(nèi)容,并根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容存儲到數(shù)據(jù)庫中。與現(xiàn)有技術(shù)相比,服務(wù)器端在接收到移動終端上傳的文件后未將其緩存為臨時文件,而是接收后就進行存儲,從而降低了文件上傳的時延,提高了文件上傳的效率,并且還可以節(jié)省服務(wù)器端的內(nèi)存資源開銷。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例適用的系統(tǒng)架構(gòu)示意圖;
圖2為本發(fā)明實施例提供的文件上傳流程示意圖;
圖3為本發(fā)明實施例提供的服務(wù)器結(jié)構(gòu)示意圖。
具體實施方式
為了使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部份實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
本申請實施例提供了一種文件上傳方案,用于提高文件上傳效率。本申請 實施例提供的方案可應(yīng)用于移動終端上傳文件到網(wǎng)絡(luò)側(cè)的過程,其中,所述移動終端可以是手機、pda(personaldigitalassistant,掌上電腦)或智能穿戴設(shè)備等具有無線通信能力的電子設(shè)備。涉及到的文件類型可以是圖片、音視頻等多媒體文件,也可以是其他文件,如文本文件。本申請實施例尤其適用于圖片類型的文件的上傳過程。
下面結(jié)合附圖對本申請實施例進行詳細描述。
圖1示例性地示出了本申請實施例適用的一種網(wǎng)絡(luò)架構(gòu)。如圖1所示,該網(wǎng)絡(luò)架構(gòu)中可包括移動終端以及網(wǎng)絡(luò)側(cè)的服務(wù)器,移動終端和服務(wù)器通過網(wǎng)絡(luò)進行通信。
上述架構(gòu)中的移動終端可以通過網(wǎng)絡(luò)將文件上傳到網(wǎng)絡(luò)側(cè)的服務(wù)器。以圖片上傳為例,移動終端在進行文件上傳之前,還可以對待上傳的圖片進行處理,比如可以進行圖片特效處理、文件壓縮處理等,然后按照規(guī)定的協(xié)議將圖片文件封裝為相應(yīng)格式的文件,并上傳到網(wǎng)絡(luò)側(cè)的服務(wù)器。
上述架構(gòu)中的服務(wù)器可以實現(xiàn)對移動終端上傳的文件進行存儲。
仍以圖片上傳為例,為了實現(xiàn)某種與圖片相關(guān)的應(yīng)用,比如某種社交應(yīng)用(該社交應(yīng)用中需要用戶提供頭像并在客戶端app(應(yīng)用程序)的用戶界面中可顯示用戶頭像),移動終端上需要安裝該應(yīng)用的客戶端app,服務(wù)器端需要安裝該應(yīng)用的服務(wù)器端app,客戶端app和服務(wù)器端app相互配合來完成該社交應(yīng)用。
上述網(wǎng)絡(luò)架構(gòu)中,移動終端和服務(wù)器可以通過網(wǎng)絡(luò)進行信息交互,該網(wǎng)絡(luò)可以是廣域網(wǎng)、局域網(wǎng)或互聯(lián)網(wǎng),或者采用移動通信技術(shù)的互聯(lián)網(wǎng)。移動終端可通過無線方式接入互聯(lián)網(wǎng),服務(wù)器通常采用有線方式與互聯(lián)網(wǎng)連接。
優(yōu)選地,移動終端和服務(wù)器可以采用云計算技術(shù),以基于云計算技術(shù)的強大功能實現(xiàn)信息處理。服務(wù)器和移動終端可采用基于云計算技術(shù)的操作系統(tǒng),比如yunos,從而可以整合云端和移動終端的資源和服務(wù)。
下面結(jié)合附圖對本申請實施例進行詳細描述。
參見圖2,為本申請實施例提供的文件上傳處理流程示意圖。該流程可在網(wǎng)絡(luò)側(cè)的服務(wù)器端實現(xiàn)。如圖所示,該流程可包括如下步驟:
步驟201:服務(wù)器獲取移動終端發(fā)送的文件數(shù)據(jù);
步驟202:服務(wù)器獲取所述文件數(shù)據(jù)中的文件描述信息以及文件內(nèi)容;
步驟203:服務(wù)器根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容存儲到數(shù)據(jù)庫中;其中,所述數(shù)據(jù)庫中,所述文件描述信息與所述文件內(nèi)容相關(guān)聯(lián)。
上述流程中,服務(wù)器端接收到移動終端發(fā)送來的文件數(shù)據(jù)后,無需進行緩存以生成臨時文件,而是可將接收到的文件數(shù)據(jù)進行存儲,因此一方面降低了文件上傳的時延,提高了文件上傳的效率,另一方面可以節(jié)省服務(wù)器的存儲資源開銷。
上述流程中,所涉及的文件類型可以是多種,下面以圖片類型的文件為例,對圖片上傳處理過程進行詳細描述。
移動終端按照規(guī)定的協(xié)議封裝待上傳的圖片文件數(shù)據(jù),然后將該圖片文件數(shù)據(jù)發(fā)送給服務(wù)器。傳輸圖片文件的協(xié)議可以是html(hypertextmark-uplanguage,超文本標記語言)協(xié)議。下面以html協(xié)議為例,對圖1所示的圖片上傳處理過程進行詳細描述。
在步驟201中,移動終端按照html協(xié)議將待上傳的圖片文件數(shù)據(jù)進行封裝。在使用html協(xié)議對圖片文件數(shù)據(jù)進行封裝時,采用multipart/form-data(多部件的表單數(shù)據(jù))格式。通常,multipart/form-data格式的報文中通常包括協(xié)議部分、文件描述部分和文件內(nèi)容部分,相鄰組成部分之間用分隔符進行分割。
下面的代碼示例性地示出了一種圖片文件數(shù)據(jù)的multipart/form-data格式報文內(nèi)容。
假設(shè)移動終端需要發(fā)送一個圖片文件,文件名為“kn.jpg”,接受文件的網(wǎng)頁程序位于:http://192.168.24.56/logsys/home/uploadispeedlog!dodefault.html,那么,移動終端客戶端鏈接192.168.24.56后,發(fā)送如下http(hypertext transferprotoco,超文本傳輸協(xié)議)請求:
post/logsys/home/uploadispeedlog!dodefault.htmlhttp/1.1
accept:text/plain,*/*
accept-language:zh-cn
host:192.168.24.56
content-type:multipart/form-data;boundary=---------------------7db372eb000e2
user-agent:winhttpclient
content-length:3693
connection:keep-alive
---------------------7db372eb000e2
content-disposition:form-data;name="file";filename="kn.gif"
content-type:image/jpeg
(此處省略jpeg文件二進制數(shù)據(jù)...)
---------------------7db372eb000e2--
上述代碼中,第1行至第8行是協(xié)議的頭,即協(xié)議部分,該部分代碼主要聲明命令的類型是post,協(xié)議版本信息,服務(wù)器地址,content-type為multipart/form-data,并定義了分隔符“---------------------7db372eb000e2”,用于分隔多個文件、表單項等,分隔符不會與文件或表單項內(nèi)容中的數(shù)據(jù)發(fā)生沖突。在進行圖片上傳時,并非協(xié)議頭部分的每個字段都需要說明,其中,content-type字段需要定義,它包括一個類似標志性質(zhì)的名為boundary(邊界)的標志,它可以是隨便輸入的字符串,用來分辨一段內(nèi)容的開始。content-length:3693,這里的3693是要上傳文件的總長度。
第10行之后到分隔符位置的部分是需要上傳的數(shù)據(jù),可以是文本,也可以是圖片等。數(shù)據(jù)內(nèi)容前面有content-disposition,content-type以及content-transfer-encoding等說明字段,用于定義文件描述信息,主要包括數(shù)據(jù)的類型(file),文件名稱,文件類型(如圖片格式)等。其后為具體的文件內(nèi)容,對于圖片文件來說即為圖片文件的二進制數(shù)據(jù)。
每個分隔的數(shù)據(jù)都可以用content-type來表示下面數(shù)據(jù)的類型,可以參考 rfc1341(http://www.ietf.org/rfc/rfc1341.txt)。例如,contect-type:image/jpeg表示下面的數(shù)據(jù)是jpeg文件數(shù)據(jù)。
在步驟202中,服務(wù)器接收到移動終端發(fā)送的上述格式的圖片文件數(shù)據(jù)后,對接收到的報文進行解析,獲取其中的文件描述信息以及圖片內(nèi)容。由于移動終端發(fā)送的圖片文件數(shù)據(jù)是根據(jù)協(xié)議規(guī)定的multipart/form-data格式,因此服務(wù)器可以根據(jù)該協(xié)議對接收到的multipart/form-data格式的圖片文件數(shù)據(jù)進行解析。
具體地,服務(wù)器可根據(jù)圖片文件數(shù)據(jù)報文中,相鄰部分之間的分隔符,確定該圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置,然后根據(jù)確定出的圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置,獲取該圖片文件數(shù)據(jù)中的文件描述信息以及圖片內(nèi)容(如二進制數(shù)據(jù))。
在步驟203中,服務(wù)器可根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容(如二進制數(shù)據(jù))存儲到數(shù)據(jù)庫中。服務(wù)器存儲圖片的方式主要可采用以下兩種:
方式1:將圖片存儲到指定的目錄中,將存儲路徑作為字段值添加到數(shù)據(jù)庫記錄中;
方式2:將圖片以二進制數(shù)據(jù)方式存儲到數(shù)據(jù)庫中,作為ole字段的值。
根據(jù)圖片的存儲方式的不同,數(shù)據(jù)庫的數(shù)據(jù)存儲結(jié)構(gòu)也相應(yīng)有所不同。
對于上述方式1,數(shù)據(jù)庫的數(shù)據(jù)表中,可設(shè)置如下字段:
id:序號;
filename:文件名稱;
ext:文件擴展名;
size:文件大??;
intro:文件簡要說明;
submit_date:上傳時間
對于上述方式2,圖片信息如果存放到數(shù)據(jù)庫,在數(shù)據(jù)庫中可增加存儲圖 片的字段(ole類型)。數(shù)據(jù)庫中增加存放圖片的字段名fileimage,數(shù)據(jù)類型為“ole對象”,該類型用來存放二進制圖片數(shù)據(jù)。作為一個例子,可設(shè)置如下字段:
id:序號;
filename:文件名稱;
fileimage:存放上傳文件內(nèi)容(二進制數(shù)據(jù));
ext:文件擴展名;
size:文件大??;
intro:文件簡要說明;
submit_date:上傳時間;
width:圖片的長;
height:圖片的寬。
上述數(shù)據(jù)結(jié)構(gòu)中,fileimage字段為“圖片內(nèi)容字段”,用于存儲圖片二進制數(shù)據(jù);其余字段用于描述圖片或圖片文件,可統(tǒng)稱為“文件描述字段”,“文件描述字段”具體包含的字段可如上所列出的字段中的一種或組合。“文件描述字段”中的具體內(nèi)容可從服務(wù)器接收到的圖片文件數(shù)據(jù)中提取。
本發(fā)明實施例優(yōu)選地采用上述方式2進行圖片存儲。
以采用上述方式2進行圖片存儲為例,服務(wù)器可根據(jù)獲取到的文件描述信息查詢數(shù)據(jù)庫中的記錄,比如可以根據(jù)文件id、文件名稱等信息,進一步地還可結(jié)合發(fā)送者的用戶信息(比如用戶id)查詢數(shù)據(jù)庫,以查詢是否存在與這些信息匹配的記錄(一條記錄中包含“文件描述信息字段”和“圖片內(nèi)容字段”等字段,進一步地,還可包含用戶id字段);若未查詢到,則表明當前接收到的報文是一個圖片文件對應(yīng)的所有報文中的第一個報文,則在該數(shù)據(jù)庫中創(chuàng)建一條記錄,將獲取到的文件描述信息存儲到該條記錄的文件描述字段,將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段;若查詢到,則表明當前接收到的報文是一個圖片文件對應(yīng)的所有報文中除第一報文以外的某個報文,此時 相應(yīng)的數(shù)據(jù)記錄已創(chuàng)建,則服務(wù)器將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段。
需要說明的是,一個圖片文件的數(shù)據(jù)量通常較大,而傳輸協(xié)議所規(guī)定的報文格式有一定的長度要求,因此通常需要將一個圖片文件數(shù)據(jù)拆分為多個報文進行傳輸。
作為一個例子,服務(wù)器可使用asp的request對象的binaryread方法讀取移動終端上傳圖片的二進制信息,從中獲得上傳的圖片文件的文件名和絕對路徑以及文件類型等信息,具體可根據(jù)其中的分隔符確定出文件名的二進制數(shù)據(jù)的起始位置,再利用asp技術(shù)將二進制數(shù)據(jù)轉(zhuǎn)換成文件名保存。進一步地,服務(wù)器通過recordset對象的appendchunk方法,將二進制的文件內(nèi)容寫入數(shù)據(jù)庫的ole字段。
進一步地,如果移動終端在上傳圖片之前,對圖片進行了壓縮處理,則服務(wù)器在收到移動終端發(fā)送的圖片文件數(shù)據(jù)之后,首先進行解壓縮處理,恢復(fù)得到原始圖片數(shù)據(jù)。
通過以上描述可以看出,當服務(wù)器端獲取到移動終端發(fā)送的文件數(shù)據(jù)后,獲取該文件數(shù)據(jù)中的文件描述信息以及文件內(nèi)容,并根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容存儲到數(shù)據(jù)庫中。與現(xiàn)有技術(shù)相比,服務(wù)器端在接收到移動終端上傳的文件后未將其緩存為臨時文件,而是接收后就進行存儲,從而降低了文件上傳的時延,提高了文件上傳的效率,并且還可以節(jié)省服務(wù)器端的內(nèi)存資源開銷。
進一步地,在一些實施例中,服務(wù)器根據(jù)獲取到的文件描述信息,存儲獲取到的圖片內(nèi)容到數(shù)據(jù)庫之后,還可使用移動終端的客戶端用戶身份信息(如用戶id)調(diào)用服務(wù)器端的應(yīng)用程序接口,服務(wù)器端的應(yīng)用程序接口用于在被調(diào)用后根據(jù)該客戶端用戶身份信息將該移動終端上傳的圖片應(yīng)用于客戶端應(yīng)用程序。通過服務(wù)器取代移動終端向開發(fā)者應(yīng)用進行回調(diào),可以實現(xiàn)回調(diào)信息的高可靠性。
在現(xiàn)有圖片上傳處理過程中,圖片上傳完成后,由客戶端用戶通過其客戶端app發(fā)起回調(diào)過程。由于移動終端所在的網(wǎng)絡(luò)有可能是2g網(wǎng)絡(luò)、3g網(wǎng)絡(luò)或無線局域網(wǎng)等,網(wǎng)絡(luò)的穩(wěn)定性具有不確定性,因此由客戶端用戶在移動終端側(cè)發(fā)起回調(diào)過程,一方面,其時延可能較長,也可能回調(diào)過程失敗,另一方面用戶操作也比較繁瑣。而本發(fā)明的上述實施例中,由服務(wù)器端模擬客戶端用戶身份發(fā)起回調(diào),即代替客戶端用戶發(fā)起回調(diào),與現(xiàn)有技術(shù)相比,可以減少時延,提高回調(diào)過程的成功率,另一方面,也可以簡化用戶操作。
為了更清楚地理解本發(fā)明的上述實施例,下面以一個具體應(yīng)用場景為例,對本發(fā)明上述實施例的具體實現(xiàn)過程進行詳細描述。
移動終端上需要安裝應(yīng)用a的客戶端app,服務(wù)器端需要安裝該應(yīng)用的服務(wù)器端app,應(yīng)用a是一種社交應(yīng)用,需要用戶提供頭像并在客戶端app的用戶界面中顯示。
在移動終端側(cè):
用戶使用用戶賬號(用戶id)登錄移動終端的客戶端app,在該客戶端app提供的用戶頭像設(shè)置界面中選擇“設(shè)置用戶頭像”的功能按鈕或菜單命令,并根據(jù)設(shè)置界面的提示,從該移動終端的圖片庫中選擇一個圖片作為頭像。之后,用戶根據(jù)設(shè)置界面的提示,選擇“上傳圖片”的功能按鈕或菜單命令。
該客戶端app根據(jù)該“上傳圖片”的命令,獲取該圖片文件描述信息以及圖片內(nèi)容的二進制數(shù)據(jù),所獲取的圖片文件描述信息可包括:圖片文件名稱、圖片類型(比如是jpeg格式還是其他圖片格式)、絕對路徑、圖片的長寬等信息中的一種或組合。然后,按照html協(xié)議,將獲取到的圖片文件描述信息和該圖片內(nèi)容的二進制數(shù)據(jù)封裝為一個或多個報文。具體的報文格式可參見前述實施例,在此不再重復(fù)。
該客戶端app將封裝好的報文發(fā)送給服務(wù)器,其中,服務(wù)器的地址可預(yù)先設(shè)置在該客戶端app中,或者客戶端app可采用其他方式獲知該服務(wù)器的地址。
在服務(wù)器側(cè):
服務(wù)器接收移動終端發(fā)送的圖片數(shù)據(jù)報文,按照html協(xié)議解析該報文,得到圖片文件描述信息以及圖片內(nèi)容的二進制數(shù)據(jù)。其中,圖片描述信息包括圖片文件名稱、圖片文件格式、圖片大小。服務(wù)器在數(shù)據(jù)庫中創(chuàng)建一條記錄,將獲取到的圖片文件名稱、圖片文件格式、圖片大小,以及用戶id填寫到該條記錄的相應(yīng)字段,將獲取到的圖片內(nèi)容的二進制數(shù)據(jù)添加到該條記錄的ole字段。
之后,服務(wù)器以該客戶端的用戶id調(diào)用應(yīng)用a的開發(fā)者api(applicationprogramminginterface,應(yīng)用程序接口)。該api被調(diào)用后觸發(fā)執(zhí)行以下處理過程,將該客戶端用戶上傳的圖片應(yīng)用到該客戶端app中,即在用戶界面的頭像顯示區(qū)域顯示該圖片。該過程稱為回調(diào)過程。
基于相同的技術(shù)構(gòu)思,本申請實施例還提供了一種服務(wù)器,該服務(wù)器可實現(xiàn)上述文件上傳處理流程。
參見圖3,為本申請實施例提供的服務(wù)器的結(jié)構(gòu)示意圖,如圖所示,該裝置可包括:第一獲取模塊301、第二獲取模塊302、存儲模塊303,其中:
第一獲取模塊301,用于獲取移動終端發(fā)送的文件數(shù)據(jù);
第二獲取模塊302,用于獲取所述文件數(shù)據(jù)中的文件描述信息以及文件內(nèi)容;
存儲模塊303,用于根據(jù)獲取到的文件描述信息,將獲取到的文件內(nèi)容存儲到數(shù)據(jù)庫中;其中,所述數(shù)據(jù)庫中,所述文件描述信息與所述文件內(nèi)容相關(guān)聯(lián)。
優(yōu)選地,所述文件數(shù)據(jù)為圖片文件數(shù)據(jù),所述文件描述信息和文件內(nèi)容為圖片文件的文件描述信息和圖片內(nèi)容。
優(yōu)選地,獲取到的圖片文件數(shù)據(jù)中包括協(xié)議部分和文件部分,所述文件部分包括文件描述部分和文件內(nèi)容部分,相鄰部分之間用分隔符分割。相應(yīng)地,第二獲取模塊302可具體用于:根據(jù)相鄰部分之間的分隔符,確定所述圖片文 件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置;根據(jù)確定出的所述圖片文件數(shù)據(jù)中的文件描述信息和圖片內(nèi)容的位置,獲取所述圖片文件數(shù)據(jù)中的文件描述信息以及圖片內(nèi)容。
優(yōu)選地,存儲模塊303可具體用于:根據(jù)獲取到的文件描述信息查詢所述數(shù)據(jù)庫中的相應(yīng)記錄;若未查詢到,則在所述數(shù)據(jù)庫中創(chuàng)建一條記錄,將獲取到的文件描述信息存儲到該條記錄的文件描述字段,將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段;若查詢到,則將獲取到的圖片內(nèi)容存儲到該條記錄的圖片內(nèi)容字段。
進一步地,該服務(wù)器還可包括調(diào)用模塊304,用于在根據(jù)獲取到的文件描述信息,存儲獲取到的圖片內(nèi)容到數(shù)據(jù)庫之后,使用所述移動終端的客戶端用戶身份信息調(diào)用服務(wù)器端的應(yīng)用程序接口,所述服務(wù)器端的應(yīng)用程序接口用于在被調(diào)用后根據(jù)所述客戶端用戶身份信息將所述移動終端上傳的圖片應(yīng)用于客戶端應(yīng)用程序。
優(yōu)選地,所述文件描述信息包括以下信息中的一種或組合:文件名稱、文件類型、圖片大小。
優(yōu)選地,所述圖片內(nèi)容為二級制數(shù)據(jù)。
本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個 流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。