Я хочу загрузить изображения на свой сервер через редактор 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 не является большой опцией, так как это приведет к безопасностиНарушение, которое мне все равно придется исправить позже.