Использование jquery fileupload с coffeescript - изменение размера изображения при использовании обратного вызова добавления

РЕШЕНО Оказывается, порядок загрузки js в application.js был неправильным:

original:
//= require jquery-fileupload/jquery.fileupload-process
//= require jquery-fileupload/jquery.fileupload-image
//= require jquery-fileupload/jquery.fileupload-validate

correct version:
//= require jquery-fileupload/jquery.fileupload-process
//= require jquery-fileupload/jquery.fileupload-validate
//= require jquery-fileupload/jquery.fileupload-image

Я пытаюсь использовать загрузчик файлов jquery BlueImp, и мне удалось заставить все работать, кроме изменения размера.

Я пытаюсь изменить размер изображений при обратном вызове добавления, а затем отправляю, чтобы избежать обработки на стороне сервера.

Я знаю, что использование обратного вызова добавления приводит к тому, что функция процесса пропускается, но я вызвал это вручную в самом обратном вызове добавления, и он должен работать, но это не так.

вот мой код:

$('.jquery-fileupload').fileupload
  dataType: "script"
  imageMaxWidth: 480
  imageMaxHeight: 360
  disableImageResize: false
  autoUpload: false
  process:[
    {
      action: 'load',
      fileTypes: /^image\/(gif|jpeg|png)$/,
      maxFileSize: 20000000
    },
    {
      action: 'resize',
      maxWidth: 480, // the images are to be loaded into a pdf later so they have to be skept small
      maxHeight: 360,
      minWidth: 480,
      minHeight: 360
    },
    {
      action: 'save'
    }
  ]
  progress: (e, data) ->
    progress = parseInt(data.loaded / data.total * 100, 10);
    $('#progress_'+data.formData.token+' .bar').css('width', progress+'%')

  add: (e, data) ->
    unique_token = token();
    if (data.files && data.files[0])
      if(data.files[0].size < 200000000)
        if(data.files[0].type.substr(0, data.files[0].type.indexOf('/')) != 'image')
          alert("Please upload a file with the correct format")
        else
          current_data = $(this)
          data.process(->
            return current_data.fileupload('process', data); //call the process function
          ).done(->
            data.formData = {token: unique_token};
            data.context = $('.preview:last');
            data.context.find('.abort').click(abortUpload);
            xhr = data.submit();
            data.context.data('data',{jqXHR: xhr});
          )
      else
        alert("one of your files is over 200MB")
  done: (e, data) ->
    console.log(data);

любая помощь в этом будет принята с благодарностью, так как я уже 2 дня бьюсь головой об стол!

редактировать забыл упомянуть, вот мои файлы js:

//= require jquery-fileupload/vendor/jquery.ui.widget
//= require jquery-fileupload/vendor/load-image
//= require jquery-fileupload/vendor/canvas-to-blob
//= require jquery-fileupload/jquery.iframe-transport
//= require jquery-fileupload/jquery.fileupload
//= require jquery-fileupload/jquery.fileupload-ui
//= require jquery-fileupload/jquery.fileupload-process
//= require jquery-fileupload/jquery.fileupload-image
//= require jquery-fileupload/jquery.fileupload-validate
//= require jquery-fileupload/vendor/tmpl
//= require jquery-fileupload/locale

person dannio    schedule 31.03.2014    source источник
comment
нет нет, это не настоящий отступ. Если бы это было так, я бы получил ошибку в rails.   -  person dannio    schedule 31.03.2014
comment
Если вы решили это, вы должны опубликовать ответ и отметить его. Не уверен, что правильный порядок - это то, что вы указали в начале или в конце в разделе редактирования.   -  person raul782    schedule 15.09.2014
comment
Это было действительно полезно, у меня заработала обработка благодаря этому сообщению. Теперь я обнаружил, что несколько загрузок не работают. Вы поняли, как заставить это работать?   -  person Brandon    schedule 30.03.2015
comment
К сожалению, у меня был код в unless, который не должен был иметь такой отступ. Ваш код отлично сработал, большое спасибо!   -  person Brandon    schedule 30.03.2015
comment
@dannio поместите свое решение в ответ и примите его, чтобы оно не осталось без ответа, и ТАК останется чистым;)   -  person frhd    schedule 14.04.2015


Ответы (1)


РЕШЕНО Оказывается, порядок загрузки js в application.js был неправильным:

оригинал:

//= require jquery-fileupload/jquery.fileupload-process
//= require jquery-fileupload/jquery.fileupload-image
//= require jquery-fileupload/jquery.fileupload-validate

правильная версия:

//= require jquery-fileupload/jquery.fileupload-process
//= require jquery-fileupload/jquery.fileupload-validate
//= require jquery-fileupload/jquery.fileupload-image
person dannio    schedule 01.04.2014
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. - person Kumar V; 01.04.2014