Ответ 1
Я понял. Это то, что я должен был использовать
myDropzone.on('sending', function(file, xhr, formData){
formData.append('userName', 'bob');
});
Я использую dropzone в проекте Code Igniter.
При каждом перетаскивании файла dropzone создает запрос ajax, и мои файлы также хранятся на сервере. Но теперь мое требование состоит в том, что я хочу отправить дополнительные данные (DYNAMIC) вместе с файлом. С помощью параметров можно отправлять только статические данные, но данные, которые я хочу отправить, будут меняться каждый раз.
Вот как выглядит мой код:
<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>
В любом случае я могу это достичь?
Я понял. Это то, что я должен был использовать
myDropzone.on('sending', function(file, xhr, formData){
formData.append('userName', 'bob');
});
Abhinav имеет правильный и рабочий ответ. Я хочу только дать второй вариант использования его в объекте options (например, если на одной странице несколько разделов Dropzone).
myDropzone.options.dropzoneDivID = {
sending: function(file, xhr, formData){
formData.append('userName', 'Bob');
}
};
Если у вас есть вложенный объект полезной нагрузки - например, для добавления имени в ваш файл, и ваш api принимает только что-то вроде этого
{
someParameter: {
image: <my-upload-file>,
name: 'Bob'
}
}
ваша настройка dropzone будет выглядеть следующим образом
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');
});
Я только добавил это, так как не было примера для вложенных параметров, зарегистрированных с тех пор.