Code Igniter Projectでdropzoneを使用しています。
ファイルをドラッグするたびに、dropzoneはajaxリクエストを作成し、ファイルもサーバーに保存されます。しかし今、私の要件は、ファイルと一緒に追加データ([〜#〜] dynamic [〜#〜])を送信することです。 paramsを使用すると、静的データのみを送信できますが、送信するデータは毎回変更されます。
これは私のコードがどのように見えるかです:
<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には正しいオプションがあり、それをオプションオブジェクトで使用するための2番目のオプションを提供したいだけです(たとえば、1ページに複数のDropzoneセクションがある場合)。
myDropzone.options.dropzoneDivID = {
sending: function(file, xhr, formData){
formData.append('userName', 'Bob');
}
};
ネストされたペイロードオブジェクトがある場合-例ファイルに名前を追加すると、APIはこのようなもののみを受け入れます
{
someParameter: {
image: <my-upload-file>,
name: 'Bob'
}
}
ドロップゾーンの設定は次のようになります
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');
});
今まで文書化されたネストされたパラメータの例がなかったため、これを追加しただけです。