在之前大文件的上傳我都是通過FilderReader獲取文件的base64然后轉為Blob在一段一段截取上傳,但是這個方法有個弊端就是很大的文件的時候獲取文件的base64會使整個瀏覽器崩潰卡死,后面我去看了一下百度網盤的上傳原理
我們可以看到百度是通過類似表單提交的方式上傳文件的,這樣子似乎不需要把文件轉化為base64減少了瀏覽器的開銷。那個讓我們來動手做一個大文件上傳吧
這里用input標簽來獲取需要上傳的文件
獲取到file對象以后我們就可以得到
這樣一個對象里面就是文件的大小名字等信息
接下來我們可以通過size判斷文件的大小,對大文件進行切割上傳處理
大文件上傳的話我們需要告訴后端切割的總公塊數和當前是那一塊這樣子后端可以對數據進行處理
這里我們通過step控制切割的大小,star和end表示該次上傳的文件開始個結束的數據位置,totalindex是總共切割的個數,index是當前上傳的個數
以上就是我的大文件上傳的方法~~~~
快過年了,在這里提前祝大家新年快樂!!!!!!!!!!!!