簡體   English   中英

模擬文件拖放並在dropzone.js中上傳

[英]Simulated file drop and upload in dropzone.js

我正在為包含dropzone.js元素的網頁編寫測試工具,我們將其myDropzone ,由$('#my-dropzone')元素表示。

題:

我可以使用javascript模擬將可上傳文件拖放到dropzone嗎?

我認為(但不確定),這可能需要執行以下操作:

  1. 在javascript中創建類似文件的對象,然后
  2. myDropzone上觸發放置事件。

步驟2很容易,但是步驟1涉及創建一個文件狀對象(包含實際數據流?),一旦刪除該對象就可以實際將其上傳。

我試圖創建一個空文件,如這個 ,然后使用myDropzone.addFile(...)但因為沒有數據有效載荷不會導致上載的文件。

謝謝!

我能夠做的是從base64編碼的文件(在本例中為圖像)創建Blob文件,並將其傳遞給addFile(),因此它實際上是在模擬刪除文件。

dropZone.addFile(base64toBlob(base64FileData, 'image/png'));

其中base64toBlob是:

function base64toBlob(b64Data, contentType, sliceSize) {
    contentType = contentType || '';
    sliceSize = sliceSize || 512;

    var byteCharacters = atob(b64Data);
    var byteArrays = [];

    for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
        var slice = byteCharacters.slice(offset, offset + sliceSize);

        var byteNumbers = new Array(slice.length);
        for (var i = 0; i < slice.length; i++) {
            byteNumbers[i] = slice.charCodeAt(i);
        }

        var byteArray = new Uint8Array(byteNumbers);

        byteArrays.push(byteArray);
    }

    var blob = new Blob(byteArrays, {type: contentType});
    return blob;
}

完整演示http://jsfiddle.net/P2dTF/52/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM