Как загрузить изображение с помощью редактора froala и coffeescript - PullRequest
0 голосов
/ 26 ноября 2018

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

class UploadController < ApplicationController
  ...
  def upload_image
    if params[:file]
      FileUtils::mkdir_p(Rails.root.join("public/uploads/files"))

      ext = File.extname(params[:file].original_filename)
      ext = image_validation(ext)
      file_name = "#{SecureRandom.urlsafe_base64}#{ext}"
      path = Rails.root.join("public/uploads/files/", file_name)

      File.open(path, "wb") {|f| f.write(params[:file].read)}
      view_file = Rails.root.join("/download_file/", file_name).to_s
      render :json => {:link => view_file}.to_json

    else
      render :text => {:link => nil}.to_json
    end
  end
  ...    
end

и добавил сценарий кофе для настройки редактора froala следующим образом:

$('#body').froalaEditor({
    # // Set the image upload URL.
  imageUploadURL: '/upload_image',

  # // Set request type.
  imageUploadMethod: 'POST',

  # // Set max image size to 5MB.
  imageMaxSize: 5 * 1024 * 1024,

  # // Allow to upload PNG and JPG.
  imageAllowedTypes: ['jpeg', 'jpg', 'png'],

    height: 400
    requestHeaders: { 
        'X-CSRF-Token': $('meta[name="csrf-token"]')
    }
});

Однако при попытке загрузить я получаю следующееошибка в моей консоли rails:

...
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 11ms (ActiveRecord: 0.0ms)
...       
ActionController::InvalidAuthenticityToken 
(ActionController::InvalidAuthenticityToken):

Это проблема с токеном csrf.Я не знаю, как добавить токен в сценарий кофе и перехватить его в контроллере, как только я сделаю запрос.

Деактивация защиты csrf не является большой опцией, так как это приведет к безопасностиНарушение, которое мне все равно придется исправить позже.

...