Estoy usando dropzone en mi Code Igniter Project.
Con cada arrastre de un archivo, dropzone crea una solicitud ajax y mis archivos también se almacenan en el servidor. Pero ahora, mi requisito es que quiero enviar datos adicionales ( DINÁMICOS ) junto con el archivo. Con el uso de parámetros, solo se pueden enviar datos estáticos, pero los datos que quiero enviar cambiarán cada vez.
Así es como se ve mi código:
<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>De todos modos puedo lograrlo?
Lo tengo. Esto es lo que tuve que usar
myDropzone.on('sending', function(file, xhr, formData){ formData.append('userName', 'bob'); });Abhinav tiene la respuesta correcta y funcional. Solo quiero dar una segunda opción para usarla en el objeto de opciones (por ejemplo, si tiene varias secciones de Dropzone en una página).
myDropzone.options.dropzoneDivID = { sending: function(file, xhr, formData){ formData.append('userName', 'Bob'); } };En caso de que tenga un objeto de carga útil anidado, por ejemplo, para agregar un nombre a su archivo y su API solo acepta algo como esto
{ someParameter: { image: <my-upload-file>, name: 'Bob' } }su configuración de dropzone se vería así
var myDropzone = new Dropzone("div#attachment", { url: uploadFilePath, paramName: 'someParameter[image]' }); myDropzone.on('sending', function(file, xhr, formData){ formData.append('someParameter[image]', file); formData.append('someParameter[userName]', 'bob'); });Solo agregué esto porque no había ningún ejemplo documentado de parámetros anidados desde ahora.