圖片上傳方法、系統及瀏覽器的制造方法
【技術領域】
[0001]本發明涉及互聯網技術領域,特別是涉及一種圖片上傳方法、系統及瀏覽器。
【背景技術】
[0002]在使用瀏覽器時,經常需要進行各種文件,如圖片的上傳操作;使用瀏覽器進行圖片上傳操作時,傳統的上傳方法中,以Windows Phone8 (即WP8)系統為例,一般是通過對打開的WEB頁面進行分析,將WEB頁面中的input標簽進行動態劫持,從而將在瀏覽器內所選擇的圖片通過本地API (Applicat1n Programming Interface,應用程序編程接口 )上傳至WEB頁面中,實現圖片的上傳。
[0003]傳統方法會針對WEB頁面中的input標簽進行替換,但是當頁面中不存在input標簽或者頁面使用了自定義的圖片上傳流程時,已有的圖片上傳方案將失效(如觸屏版本的社交網站中上傳圖片的功能),此時將導致無法上傳圖片的問題出現。
【發明內容】
[0004]基于此,有必要針對某些特定情況下無法上傳圖片的問題,提供一種圖片上傳方法、系統及瀏覽器。
[0005]為實現上述目的,本發明采用如下的技術方案:
[0006]一種圖片上傳方法,包括以下步驟:
[0007]當接收到在打開的WEB頁面中上傳圖片的指令時,通過瀏覽器程序內預置的文件上傳通知接口啟動瀏覽器的圖片選擇流程;
[0008]在圖片選擇完成后,獲取相應的圖片數據;
[0009]將所述圖片數據傳入所述WEB頁面中。
[0010]一種圖片上傳系統,包括:
[0011]圖片選擇啟動模塊,用于當接收到在打開的WEB頁面中上傳圖片的指令時,通過瀏覽器程序內預置的文件上傳通知接口啟動瀏覽器的圖片選擇流程;
[0012]圖片數據獲取模塊,用于在圖片選擇完成后,獲取相應的圖片數據;
[0013]圖片上傳模塊,用于將所述圖片數據傳入所述WEB頁面中。
[0014]—種瀏覽器,包括上述的圖片上傳系統。
[0015]由以上方案可以看出,本發明的一種圖片上傳方法、系統及瀏覽器,在瀏覽器程序內預置了文件上傳通知接口,當需要進行圖片上傳時,通過該文件上傳通知接口來主動通知瀏覽器啟動圖片選擇流程,然后進行圖片數據的獲取后,將圖片上傳到WEB頁面。本發明的方案不需要對WEB頁面中的input標簽進行替換處理,因此解決了在某些特定情況(例如WP8系統下需要在觸屏版本的社交網站中上傳圖片)下無法實現圖片上傳的缺陷,提高了圖片上傳的效率。
【附圖說明】
[0016]圖1為本發明實施例一中的一種圖片上傳方法的流程示意圖;
[0017]圖2為本發明實施例二中的一種圖片上傳方法的流程示意圖;
[0018]圖3為本發明實施例中的一種圖片上傳系統的結構示意圖;
[0019]圖4為能實現本發明實施例的一個計算機系統的結構示意圖。
【具體實施方式】
[0020]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0021]除非上下文另有特定清楚的描述,本發明中的元件和組件,數量既可以單個的形式存在,也可以多個的形式存在,本發明并不對此進行限定。本發明中的步驟雖然用標號進行了排列,但并不用于限定步驟的先后次序,除非明確說明了步驟的次序或者某步驟的執行需要其他步驟作為基礎,否則步驟的相對次序是可以調整的。
[0022]實施例一
[0023]參見圖1所示,一種圖片上傳方法,包括以下步驟:
[0024]步驟S101,當接收到在打開的WEB頁面中上傳圖片的指令時,通過瀏覽器程序內預置的文件上傳通知接口來喚醒和啟動瀏覽器的圖片選擇流程,然后進入步驟S102。
[0025]作為一個較好的實施例,上述通過文件上傳通知接口來啟動瀏覽器的圖片選擇流程的過程具體可以包括如下步驟:通過所述文件上傳通知接口對所接收到的上傳圖片的指令進行解析,當解析到預定的特征字符串時,啟動相應的圖片選擇流程。本發明實施例中,可以通過一個IE控件來啟動圖片選擇流程,控件支持網頁使用JS (JavaScript,客戶端腳本語言)腳本對控件發送文本信息,預置的文件上傳通知接口需要先接收到網頁開發者通知過來的帶有特征字符串的信息后,瀏覽器才能啟動圖片選擇流程。
[0026]以目前的業務情況為例,在一些社交網站觸屏版適配WP8平臺時,由于系統瀏覽器本身不支持使用〈input type = 〃file〃>喚醒系統文件上傳的流程,需要第三方瀏覽器進行適配。基于此,本發明實施例在瀏覽器程序內預置了一個系統內核通知接口(即文件上傳通知接口),用于在打開的網頁頁面中主動通知瀏覽器需要進行圖片文件的上傳操作。這樣就可以避免傳統方案中由于需要動態劫持WEB頁面中的input標簽并進行替換,當頁面中不存在input標簽或者頁面使用了自定乂的圖片上傳流程時(例如WP8系統下在觸屏版本的社交網站中上傳圖片)所導致的無法實現圖片上傳的問題出現。
[0027]步驟S102,在瀏覽器的圖片選擇流程啟動后,用戶可以按照自身的需求選擇待上傳的圖片;本步驟中,在檢測到圖片選擇完成后,獲取相應的圖片數據,然后進入步驟S103o
[0028]步驟S103,將所述圖片數據傳入所述WEB頁面中。
[0029]作為一個較好的實施例,步驟S103中將所述圖片數據傳入所述WEB頁面中的過程具體可以包括如下步驟:
[0030]步驟S1031,判斷所述圖片數據的大小是否超過設定閾值;若否,則進入步驟S1032。
[0031]需要說明的是,上述的閾值可以根據瀏覽器的處理性能等來進行設置,例如本發明實施例中可以將其設置為1MB。
[0032]步驟S1032,若步驟S1031的判斷結果為否,即所述圖片數據的大小未超過設定閾值,則可以對所述圖片數據進行編碼處理,并將編碼處理后的圖片數據傳入所述WEB頁面中,然后就可以在WEB頁面中發起正常的圖片上傳流程,從而完成圖片的上傳操作。
[0033]作為一個較好的實施例,對所述圖片數據進行編碼處理、并將編碼處理后的圖片數據傳入所述WEB頁面中的過程具體可以包括如下步驟:將所述圖片數據編碼成base64字符串,并將該base64字符串以JS對象的形式傳入所述WEB頁面中。Base64是用于傳輸8Bit字節代碼的編碼方式之一,可用于在HTTP (Hypertext transfer protocol,超文本傳輸協議)環境下傳遞較長的標識信息。
[0034]另外,在實際應用中我們發現,由于瀏覽器內核本身存在缺陷,而且用戶的圖片數據的大小不可預料,當圖片體積超過某個閾值時,程序內存將會快速升高導致瀏覽器內核出現偽內存泄漏。為解決這個問題,作為一個較好的實施例,本發明的一種圖片上傳方法還可以包括如下步驟:
[0035]步驟S1033,若步驟S1031的判斷結果為是,即判斷得出所述圖片數據的大小超過了設定閾值(例如1MB),則對所述圖片數據進行壓縮處理,得到預設尺寸大小的圖片數據;
[0036]步驟S1034,對壓縮處理后的圖片數據進行編碼處理,并將編碼處理后的圖片數據傳入所述WEB頁