在每次文件上传时使用拖放区.js发送自定义数据

我在我的代码点火器项目中使用dropzone。

每次拖动文件时,dropzone 都会创建一个 ajax 请求,我的文件也会存储在服务器上。但现在,我的要求是我想在文件旁边发送其他数据(动态)。使用参数,只能发送静态数据,但我想发送的数据每次都会更改。

这是我的代码的样子:

<script>
 Dropzone.autoDiscover = false;
  Dropzone.options.attachment = {
        init: function(){
          this.on('removedfile',function(file){
            // console.log('akjsdhaksj');
            var fileName = file.name;
            $.ajax({
              type: 'POST',
              url: "<?php echo BASE_URL.'index.php/admin/mail_actions/deleteFile' ?>",
              data: "id="+fileName,
              dataType: 'html'
            });
          });
        },
        // params: {
        // customerFolder: $('#toValue').substr(0, toValue.indexOf('@')),
        // },
        dictDefaultMessage:"Click / Drop here to upload files",
        addRemoveLinks: true,
        dictRemoveFile:"Remove",
        maxFiles:3,
        maxFilesize:8,
  }

$(function(){

  var uploadFilePath = "<?php echo BASE_URL.'index.php/admin/mail_actions/uploadFile' ?>";
  var myDropzone     = new Dropzone("div#attachment", { url: uploadFilePath});

});
</script>

无论如何,我能实现它吗?


答案 1

知道了。这是我必须使用的

myDropzone.on('sending', function(file, xhr, formData){
    formData.append('userName', 'bob');
});

答案 2

Abhinav有正确而有效的答案,我只想给出第二个选项,以便在选项对象中使用它(例如,如果您在一个页面上有多个Dropzone部分)。

myDropzone.options.dropzoneDivID = {
    sending: function(file, xhr, formData){
        formData.append('userName', 'Bob');
    }
};