在dropzone.js中分配文件服务器id

Assign files server id in dropzone.js

本文关键字:文件服务器 id 分配 dropzone js      更新时间:2023-09-26

使用dropzone.js,我正在为滑块上传图像。当我将文件上传到服务器时,响应只是一个与图像/文件数据库id相对应的数字。如果有一个文件列表,则有一个id列表作为响应。现在,出于某种目的,我想将此id分配给dropzone文件。

上传文件时会触发一个成功事件,请附上下面的示例代码(this是dropzone参考(

this.on("success",
    function(file, responseStr) {
        console.log(responseStr);
        var responseObj = JSON.parse(responseStr);
        if (responseObj.success) {
            // save response for later processing
            file.additionalInfo = responseObj;
        } else {
            var message = responseObj.message;
            file.previewElement.classList.add("dz-error");
            file.status = Dropzone.ERROR;
            var els = file.previewElement.querySelectorAll("[data-dz-errormessage]");
            for (var i = 0; i < els.length; i++) {
                els[i].textContent = message;
            }
        }
});

对于多个文件,您可以使用;多重efiles";由dropzone提供的事件,或者只遍历每个文件的响应作为下图:

                           this.on("success", function (file, response)
                            {
                                // if multiple files are saved the response returns all the documents
                                // but dropzone will fire the success event per file
                                // find the corresponding document based on name
                                if (response != null && response.Documents != null)
                                {
                                    var d = response.Documents.find(x => x.FileName ==  file.name);
                                    refresh = true;
                                    dropZone.emit("thumbnail", file, d.ThumbnailBase64);
                                }
                            });

成功集预览"id";属性

myDropzone.on("success", function(file,data) {
    let myfile = file.previewTemplate;
    myfile.setAttribute('id',data.server_data.id);
});

删除操作时获取此id

myDropzone.on("removedfile", function(file) {
    var server_file = $(file.previewTemplate);
    var id = server_file.attr("id");
    $.ajax({
        url: your url,
        type: "DELETE",
        data: { "_token":_token,'id':id },
        success: (data) => {
        console.log(data);
        },
        error: function(data){
        console.log(data);
        }
    });
});