日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

百度webuploader如何实现秒传与断点续传

發(fā)布時間:2023/12/13 综合教程 47 生活家
生活随笔 收集整理的這篇文章主要介紹了 百度webuploader如何实现秒传与断点续传 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

因為這是小眾需求,所以默認(rèn)沒有做在webuploader里面,而只是提供hook接口,讓用戶很簡單的擴展此功能。

那么,都有哪些重要的hook接口呢?

before-send-file此hook在文件發(fā)送之前執(zhí)行
before-file此hook在文件分片(如果沒有啟用分片,整個文件被當(dāng)成一個分片)后,上傳之前執(zhí)行。
after-send-file此hook在文件所有分片都上傳完后,且服務(wù)端沒有錯誤返回后執(zhí)行。
...

對于秒傳來說,其實就是文件上傳前,把內(nèi)容讀取出來,算出md5值,然后通過ajax與服務(wù)端驗證進(jìn)行驗證, 然后根據(jù)結(jié)果選擇繼續(xù)上傳還是掉過上傳。

像這個操作里面有兩個都是異步操作,文件內(nèi)容blob讀取和ajax請求。所以這個handler必須是異步的,怎樣告訴組件此handler是異步的呢?只需要在hanlder里面返回一個promise對象就可以了,這樣webuploader就會等待此過程,監(jiān)聽此promise的完成事件,自動繼續(xù)。

以下是此思路的簡單實現(xiàn)。

Uploader.register({
    'before-send-file': 'preupload'
}, {
    preupload: function( file ) {
        var me = this,
            owner = this.owner,
            server = me.options.server,
            deferred = WebUploader.Deferred();

        owner.md5File( file.source )

            // 如果讀取出錯了,則通過reject告訴webuploader文件上傳出錯。
            .fail(function() {
                deferred.reject();
            })

            // md5值計算完成
            .then(function( md5 ) {

                // 與服務(wù)安驗證
                $.ajax(server, {
                    dataType: 'json',
                    data: {
                        md5: ret
                    },
                    success: function( response ) {

                        // 如果驗證已經(jīng)上傳過
                        if ( response.exist ) {
                            owner.skipFile( file );

                            console.log('文件重復(fù),已跳過');
                        }

                        // 介紹此promise, webuploader接著往下走。
                        deferred.resolve();
                    }
                });
            });

        return deferred.promise();
    }
});

詳情參考:https://github.com/fex-team/webuploader/issues/142

總結(jié)

以上是生活随笔為你收集整理的百度webuploader如何实现秒传与断点续传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。