檔案上傳方法、檔案下載方法及相關的伺服器與流程
2023-07-23 18:11:16

本發明涉及檔案上傳/下載方法,特別是一種續傳方法。
背景技術:
當用戶使用瀏覽器將檔案上傳到遠程的一伺服器或是自伺服器下載檔案時,若是檔案上傳/下載到一半突然網絡斷線或是不小心關閉了瀏覽器,則用戶需要重新打開檔案夾找尋需要上傳的檔案或是找尋需要下載的檔案位置,且檔案需要整個重新上傳/下載,因此造成了用戶的困擾且也會過度消耗網絡帶寬。
技術實現要素:
因此,本發明的目的的一在於公開一種檔案上傳/下載方法與相關的伺服器,其可以在檔案上傳/下載中斷之後自動從檔案未完成上傳/下載的部分開始進行,而不需要重新上傳/下載整個檔案,以解決現有技術中所述的問題。
本發明的一實施例公開了一種伺服器,所述伺服器包括一處理器以及一儲存單元,其中所述處理器用於控制所述伺服器的操作。所述儲存單元用來儲存至少一程序代碼,其中所述程序代碼是用來被一電子裝置通過網絡來讀取,並由所述電子裝置的一瀏覽器所執行。當所述瀏覽器執行所述程序代碼時,會執行以下步驟:接收一上傳指令,並將對應所述上傳指令的一檔案複製到所述瀏覽器所提供的一虛擬檔案系統;將所述虛擬檔案系統中的所述檔案劃分為多個部分;通過網絡循序將所述多個部份上傳到所述伺服器,並實時記錄所述檔案的上傳進度;以及當所述檔案的上傳中斷之後重新上傳所述檔案時,根據所記錄的上傳進度來直接將所述檔案未上傳的部分傳送到所述伺服器中。
本發明的另一實施例公開了一種適用於一瀏覽器的檔案上傳方法,該方法包括有:接收一上傳指令,並將對應所述上傳指令的一檔案複製至所述瀏覽器所提供的一虛擬檔案系統;將所述虛擬檔案系統中的所述檔案劃分為多個部分;通過網絡將所述檔案的所述多個部分循序上傳至一伺服器中,並實時記錄所述檔案的上傳進度;以及當所述檔案的上傳中斷之後重新上傳所述檔案時,根據所記錄的上傳進度來直接將所述檔案未上傳的部分傳送到所述伺服器中。
本發明另一實施例公開了一種伺服器,所述伺服器包括一處理器以及一儲存單元,其中所述處理器用於控制所述伺服器的操作。所述儲存單元用來儲存至少一程序代碼,其中所述程序代碼是用來被一電子裝置通過網絡來讀取,並由所述電子裝置的一瀏覽器所執行,其中當所述瀏覽器執行所述程序代碼時,會執行以下步驟:接收一下載指令,並通過網絡將對應所述下載指令的一檔案的多個部份循序自所述伺服器下載到所述瀏覽器所提供的一虛擬檔案系統,並實時記錄所述檔案的下載進度;當所述檔案的下載中斷之後重新下載所述檔案時,根據所記錄的下載進度來直接將所述檔案未下載的部分下載到所述虛擬檔案系統;以及當所述檔案的所有部份都下載至所述虛擬檔案系統後,將所述檔案複製至所述電子裝置的檔案系統。
本發明另一實施例公開一種適用於一瀏覽器檔案下載方法,所述方法包括有:接收一下載指令,並通過網絡將對應所述下載指令的一檔案的多個部份循序自所述伺服器下載到所述瀏覽器所提供的一虛擬檔案系統,並實時記錄所述檔案的下載進度;當所述檔案的下載中斷之後重新下載所述檔案時,根據所記錄的下載進度來直接將所述檔案未下載的部分下載到所述虛擬檔案系統;以及當所述檔案的所有部份都下載至所述虛擬檔案系統後,將所述檔案複製至所述電子裝置的檔案系統。
附圖說明
圖1為依據本發明一實施例的一系統的示意圖。
圖2為依據本發明一實施例的電子裝置將檔案上傳至伺服器的方法的流程圖。
圖3所示的用戶將一檔案拖拉至瀏覽器所顯示的所述特定網頁以進行檔案上傳的示意圖。
圖4為依據本發明一實施例的電子裝置將自伺服器下載檔案的方法的流程圖。
其中,附圖標記說明如下:
100 系統
110 伺服器
112 處理器
114 儲存單元
116 程序代碼
120 電子裝置
200~214、400~416 步驟
具體實施方式
請參考圖1,其為依據本發明一實施例的一系統100的示意圖。如圖1所示,系統100包括了一伺服器110以及一電子裝置120,其中電子裝置120是通過網絡(例如,網際網路(Internet))與伺服器110進行連結,且伺服器110至少包括了一處理器112以及一儲存單元114,且儲存單元114儲存了多組程序代碼116,而處理器112是用來執行多組程序代碼116中的一部分來控制伺服器112的操作。需注意的是,雖然圖1僅繪示了伺服器110中的少部分組件,但本領域具有通常知識者應能了解伺服器110上也具有許多周邊組件來連同處理器112一起運作,且儲存單元114可包括多個相同/不同的儲存晶片,由於本發明的主要精神是伺服器110與電子裝置120之間的檔案傳輸,故其內部細節組件架構在此省略。
在本實施例中,伺服器110可作為一檔案伺服器,其用來作為一雲端儲存空間以使得電子裝置120可以通過本身的瀏覽器並通過網絡來上傳/下載檔案,但本發明並不以此為限,伺服器110也可為多合一伺服器,其可作為檔案伺服器、網頁伺服器、遠程用戶撥接驗證服務(Remote Authentication Dial-In User Service,RADIUS)伺服器、遠程訪問虛擬專用網(Virtual Private Network)伺服器、代理伺服器(proxy server)…等等。另外,電子裝置120可以是任何可使用瀏覽器的電子裝置,例如桌面計算機、筆記本電腦、智能型手機、平板計算機…等等。
另外,多組程序代碼116中包括了一特定程序代碼,在本實施例中為一爪哇描述語言(Javascript code),其用來被電子裝置120通過網絡來讀取,並由電子裝置120的瀏覽器所執行,以在電子裝置120將一檔案劃分成多個部分並循序將所述多個部份上傳到伺服器時110,實時記錄所述檔案的上傳進度,並在所述檔案的上傳中斷之後重新上傳所述檔案時,根據所記錄的上傳進度來直接將所述檔案未上傳的部分傳送到伺服器110中。有關於所述特定程序代碼及系統100的操作將於圖2的流程中描述。
請同時參考第1、2圖,其中圖2為依據本發明一實施例的電子裝置120將檔案上傳至伺服器110的方法的流程圖。在步驟200中,流程開始,且電子裝置120通過網絡聯機到伺服器110。在步驟202中,電子裝置120的瀏覽器開啟一特定網頁,而此時電子裝置120會自伺服器110讀取多組程序代碼116中的所述特定程序代碼,且通過瀏覽器來執行;此外,在一實施例中,所述特定網頁會要求電子裝置120的用戶輸入帳號及密碼以做為身分驗證及記錄。
接著,在步驟204中,當電子裝置120接收到一上傳指令時,例如圖3所示的用戶將一檔案拖拉至瀏覽器所顯示的所述特定網頁時,所述檔案會被複製到瀏覽器所提供的虛擬檔案系統中。在一實施例中,當電子裝置120接收到上傳指令時,伺服器110可根據用戶的身分來分配檔案上傳空間。
在步驟206中,電子裝置120的瀏覽器將所述檔案劃分為多個部分(或是多個區塊),並準備依序地將所述多個部分循序傳送到伺服器110中,其中檔案劃分傳送的部分可以由HTML5規範中的檔案應用程式接口(File Application Programming Interface,File API)來完成,故細節不再此描述。接著,在步驟208中,瀏覽器開始通過網絡循序將所述檔案的所述多個部分傳送到伺服器110,而此時電子裝置120的瀏覽器以及伺服器110均會記錄所述檔案的上傳進度,也就是說,電子裝置120的瀏覽器會記錄已成功傳送出所述檔案的第幾個部分,並將所記錄的進度儲存於虛擬檔案系統中,且伺服器110的處理器112記錄已成功接收到所述檔案的第幾個部分,並將所記錄的進度儲存於儲存單元114或是其他的儲存裝置中。此外,在一實施例中,瀏覽器會顯示所述檔案的上傳進度。
在步驟210中,當網絡中斷或是瀏覽器關閉而造成所述檔案的上傳中斷時,電子裝置120的瀏覽器及伺服器110均會捨棄目前正在傳輸的部分(區塊),且電子裝置120的瀏覽器及伺服器110的上傳進度均不會記錄此一捨棄的區塊。詳細來說,假設當電子裝置120在上傳第7個區塊時發生網絡中斷,則電子裝置120的瀏覽器及伺服器110所記錄的上傳進度為已成功上傳/接收所述檔案的第6個區塊。另一方面,當所述檔案的上傳中斷時,伺服器110仍然會將所述檔案已接收的部分暫存/保留在儲存單元114或是其他的儲存裝置中,而不會將所述檔案已接收的部分刪除。
在步驟212中,當網絡重新聯機或是用戶重新使用瀏覽器開啟所述特定網頁時,電子裝置120的瀏覽器會主動地根據先前所記錄的上傳進度來將所述檔案未上傳的部分傳送到伺服器110中。詳細來說,當瀏覽器重新聯機到所述特定網頁時,瀏覽器會利用網頁程序代碼主動地向伺服器110要求檢查用戶身分及比對彼此所記錄的所述檔案的上傳進度,也就是說,要確認用戶身分是否有效以及所述檔案的實際上傳進度,舉例來說,若是瀏覽器所記錄的是上傳到所述檔案的第6個部分,而伺服器110所記錄的卻是只接收到所述檔案的第5個部分,則所述檔案的實際上傳進度便是第5個部分;而當伺服器110確認用戶身分仍然有效時,伺服器110才會允許所述電子裝置120重新上傳所述檔案。因此,當伺服器110確認用戶身分仍然有效時,瀏覽器會繼續上傳未完成的部分(也就是從第6個部分開始上傳),而不會將整個檔案重新上傳(即不會上傳已經傳送過的部分)。
在步驟213中,當所述檔案的每一個部分均上傳至伺服器110之後,電子裝置120刪除暫存在瀏覽器所提供的虛擬檔案系統中的所述檔案以及所記錄的上傳進度。最後在步驟214中,完成檔案上傳,流程結束。
如以上所揭露的內容,在本發明的檔案上傳方法中,是先將檔案存入到瀏覽器的虛擬檔案系統中進行劃分後再上傳,且會同時記錄上傳進度,因此,當網絡無法正常聯機或是瀏覽器關閉而造成檔案上傳中斷時,瀏覽器能夠主動地根據所記錄的上傳進度來恢復上傳進度,且不需要用戶的刻意操作,因此大幅增加用戶的便利性。
另一方面,上述的實施例主要是揭露一種提供瀏覽器上傳檔案的方法,然而,在本發明的另一實施例中,揭露了一種提供瀏覽器自伺服器110下載檔案的方法。請同時參考第1、4圖,其中圖4為依據本發明一實施例的電子裝置120自伺服器110下載檔案的方法的流程圖。在步驟400中,流程開始,且電子裝置120通過網絡聯機到伺服器110。在步驟402中,電子裝置120的瀏覽器開啟一特定網頁,而此時電子裝置120會自伺服器110讀取多組程序代碼116中的所述特定程序代碼,且通過瀏覽器來執行;此外,在一實施例中,所述特定網頁會要求電子裝置120的用戶輸入帳號及密碼以做為身分驗證及記錄。
接著,在步驟404中,電子裝置120接收到一下載指令時,例如用戶通過瀏覽器畫面點選下載伺服器110中的檔案。在步驟406中,伺服器110將所述檔案劃分為多個部分(或是多個區塊),且電子裝置120的瀏覽器開始通過網絡循序將自所述伺服器110下載所述檔案的各個部分(區塊),而此時所下載的區塊會暫存在瀏覽器所提供的一虛擬檔案系統中;而此時電子裝置120的瀏覽器以及伺服器110均會記錄所述檔案的下載進度,也就是說,電子裝置120的瀏覽器會記錄已成功接收到所述檔案的第幾個部分,並將所記錄的進度儲存於虛擬檔案系統中,且伺服器110的處理器112記錄已成功傳送出到所述檔案的第幾個部分,並將所記錄的進度儲存於儲存單元114或是其他的儲存裝置中。此外,在一實施例中,瀏覽器會顯示所述檔案的下載進度。
在步驟408中,當網絡中斷或是瀏覽器關閉而造成所述檔案的下載中斷時,電子裝置120的瀏覽器及伺服器110均會捨棄目前正在傳輸的部分(區塊),且電子裝置120的瀏覽器及伺服器110的傳輸進度均不會記錄此一捨棄的區塊。詳細來說,假設當電子裝置120在下載第7個區塊時發生網絡中斷,則電子裝置120的瀏覽器及伺服器110所記錄的下載進度為已成功下載/傳送所述檔案的第6個區塊。另一方面,當所述檔案的下載中斷時,電子裝置120仍然會將所述檔案已接收的部分暫存/保留在瀏覽器所提供的虛擬檔案系統中,而不會將所述檔案已接收的部分刪除。
在步驟410中,當網絡重新聯機或是用戶重新使用瀏覽器開啟所述特定網頁時,電子裝置120的瀏覽器會主動地根據先前所記錄的下載進度來將所述檔案未下載的部分下載到虛擬檔案系統中。詳細來說,當瀏覽器重新聯機到所述特定網頁時,瀏覽器會利用網頁程序代碼主動地向伺服器110要求檢查用戶身分及比對彼此所記錄的所述檔案的下載進度,也就是說,要確認用戶身分是否有效以及所述檔案的實際下載進度,舉例來說,若是瀏覽器所記錄的是下載到所述檔案的第3個部分,而伺服器110所記錄的卻是傳送到所述檔案的第4個部分,則所述檔案的實際下載進度便是第3個部分;而當伺服器110確認用戶身分仍然有效時,伺服器110才會允許所述電子裝置120重新下載所述檔案。因此,當伺服器110確認用戶身分仍然有效時,瀏覽器會繼續下載未完成的部分(也就是從第4個部分開始下載),而不會將整個檔案重新下載(即不會下載已經接收到的部分)。
在步驟412中,當所述檔案的所有部份都下載至虛擬檔案系統後,電子裝置120會將所述檔案複製至電子裝置120的檔案系統。接著,在步驟414中,電子裝置120刪除暫存在瀏覽器所提供的虛擬檔案系統中的所述檔案以及所記錄的下載進度。最後在步驟214中,完成檔案下載,流程結束。
以上所述僅為本發明的較佳實施例,凡依本發明申請專利範圍所做的均等變化與修飾,都應屬本發明的涵蓋範圍。
以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。