Mit cropper.js vor Dropzone.js Bild senden zum server

Was ich tun will ist hier vor Dropzone.js senden Sie das gefilterte Bild auf den server, erscheint ein modales mit cropper.js (fengyuanchen Skript), so kann der Benutzer das Bild zuschneiden, und als Bild abgeschnitten wird, senden Sie es mit Dropzone.js zu dem server.

Also, wenn ich das Bild ändern von src #cropbox mit der Funktion fileToBase64 und ersetzen das Bild von der cropper mit der Funktion cropper ("ersetzen"), es hält zeigt default.jpg Bild, anstatt der neuen hochgeladen von Benutzer

HTML

<div class="wrapper-crop-box">
    <div class="crop-box">
        <img src="default.jpg" alt="Cropbox" id="cropbox">
    </div>
</div>

JS:

function fileToBase64(file) {
  var preview = document.querySelector('.crop-box img');
  var reader  = new FileReader();

  reader.onloadend = function () {
    preview.src = reader.result;
  }

  if (file) {
    reader.readAsDataURL(file);
  } else {
    preview.src = "";
  }
}

$(function() {
    Dropzone.options.avtDropzone = {
        acceptedFiles: 'image/*',
        autoProcessQueue: true,
        paramName: 'file',
        maxFilesize: 2,
        maxFiles: 1,
        thumbnailWidth: 200,
        thumbnailHeight: 200,
        accept: function(file, done) {
            fileToBase64(file); 
            $('#cropbox').cropper('replace', $('#cropbox').attr('src'));
            $('.wrapper-crop-box').fadeIn();
            done();
        },
        init: function() {
            this.on("addedfile", function(file) {
                if (this.files[1]!=null){
                    this.removeFile(this.files[0]);
                }
            });
        }
    };

    $('#cropbox').cropper({
      aspectRatio: 1 / 1,
      resizable: false,
      guides: false,
      dragCrop: false,
      autoCropArea: 0.4,
      checkImageOrigin: false,
      preview: '.avatar'
    });
});
InformationsquelleAutor Fosfor | 2015-04-01
Schreibe einen Kommentar