Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript dropzone.js中的模拟文件拖放和上载_Javascript_File Upload_Dropzone.js - Fatal编程技术网

Javascript dropzone.js中的模拟文件拖放和上载

Javascript dropzone.js中的模拟文件拖放和上载,javascript,file-upload,dropzone.js,Javascript,File Upload,Dropzone.js,我正在为一个包含dropzone.js元素的网页编写一个测试工具,我们称之为myDropzone,由$(“#我的dropzone”)元素表示 问题: 我可以使用javascript模拟将可上载文件拖放到dropzone上吗? 我认为(但我不确定)这可能需要: 在javascript中创建类似文件的对象,然后 在myDropzone上触发丢弃事件 第2步很简单,但第1步需要创建一个类似文件的对象(包含真实的数据流?),一旦删除该对象,该对象实际上可以上传 我尝试创建虚拟文件,例如,然后使用myDr

我正在为一个包含dropzone.js元素的网页编写一个测试工具,我们称之为
myDropzone
,由
$(“#我的dropzone”)
元素表示

问题:

我可以使用javascript模拟将可上载文件拖放到dropzone上吗?

我认为(但我不确定)这可能需要:

  • 在javascript中创建类似文件的对象,然后
  • 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;
    }
    
    函数base64toBlob(b64Data、contentType、sliceSize){
    contentType=contentType | |“”;
    切片大小=切片大小| | 512;
    var byteCharacters=atob(b64Data);
    var ByteArray=[];
    对于(变量偏移量=0;偏移量
    完整演示