web-dev-qa-db-ja.com

ファイルのアップロードごとにdropzone.jsでカスタムデータを送信する

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>

とにかく私はそれを達成できますか?

36
Abhinav

わかった。これは私が使用しなければならなかったものです

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

Abhinavには正しいオプションがあり、それをオプションオブジェクトで使用するための2番目のオプションを提供したいだけです(たとえば、1ページに複数のDropzoneセクションがある場合)。

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

ネストされたペイロードオブジェクトがある場合-例ファイルに名前を追加すると、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');
});

今まで文書化されたネストされたパラメータの例がなかったため、これを追加しただけです。

8
Achim Koellner