Soru Her bir Dosya Yükleme'ye dropzone.js ile özel veriler gönderin


Code Igniter Project'de dropzone kullanıyorum.

Bir dosyanın her sürüklemesiyle dropzone bir ajax isteği oluşturur ve dosyam da sunucuda depolanır. Ama şimdi benim şartım, ek veri göndermek istiyorumDİNAMİK) dosyanın yanında. Params kullanımı ile sadece statik veriler gönderilebilir, ancak göndermek istediğim veriler her zaman değişiyor.

Kodum böyle görünüyor:

<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>

Neyse onu başarabilir miyim?


29
2018-03-16 09:55


Menşei




Cevaplar:


Anladım. Kullanmam gereken şey buydu

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

108
2018-03-16 10:04



Bunu kullanmayı denedim ama şans yok ... ve bu kodu nereye ekleyeceğim? init? - Shiva
Dropzone'unuzu nasıl tanımladınız? Snippet olmadan yanıtlaması zor. Bir keman oluştur - Abhinav
keman bağlantısı jsfiddle.net/medashiva/0za3z13r - Shiva
gönderiyor, ancak yollama şeklini anlamıyor.İçerik-Yerleşim: form-veri; name = "name" sss İçerik-Yerleştirme: form-veri; name = "description" - Shiva
Kaldırmayı deneyin sending oluştururken yöntem dropzone instanceve gönderme yöntemini kullanarak on - Abhinav


Abhinav doğru ve işe yarayan bir cevaba sahip. Sadece seçenekler nesnesinde kullanmak için ikinci bir seçenek vermek istiyorum (örneğin, bir sayfada birden fazla Dropzone bölümünüz varsa).

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

17
2018-05-20 13:26



Abhinav ile tam olarak aynı cevap. Onun yolu birden fazla dropzones için çalışıyor ... - Martin Dawson
Bu özelliği uygulamak için birden fazla yol olduğunu gösterdiğinden cevabınızı çok beğendim - Bron Davies


İç içe yüklenen bir faydalı nesneniz varsa - ör. dosyanıza bir ad eklemek ve api'niz sadece böyle bir şeyi kabul eder

{
    someParameter: {
        image: <my-upload-file>,
        name: 'Bob'
    }
}

dropzone kurulumunuz şöyle görünecekti

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');
});

Bunu ekledim, çünkü şimdiye kadar belgelenmiş iç içe geçmiş parametrelerin bir örneği yoktu.


4
2018-02-26 09:21