Сохранение изображений TinyMCE Base64 с помощью стрекозы
Я использую tinymce-rails-imageupload
плагин со стрекозой.
Когда изображение загружается через отдельную форму во всплывающем окне, оно ведет себя как ожидалось (сохранить изображение в хранилище данных).
Но когда пользователь перетаскивает или вставляет изображение в TinyMCE, плагин imageupload разрешает это. Я пытался найти способ отключить это поведение, но, по-видимому, нет простого способа отключить разрешение загрузки изображений, в то же время запретив поведение прошлого / перетаскивания. Так что я отказался от этого..
Сейчас я пытаюсь сохранить изображение BASE64 в контенте TinyMCE.
В контроллере:
def store_file
@image = Resource.new :res_image => params[:file]
@image.save
render json: {
image: {
url: @image.res_image.remote_url
}
}, content_type: "text/html"
end
def create
@entry = Entry.new(params[:entry])
# iterate through tinyMCE field params[:entry][:message]
# if image tag is found
# if value of src tag starts with "data:"
# then replace it with the output of
# Resource.create_image_from_base64(extracted_base64_value)
# end if
# end if
# end iteration
begin
@entry.save!
flash[:success] = "Entry was successfully created."
redirect_to entries_path
rescue Mongoid::Errors::Validations => e
render :action => "new"
end
end
В модели ресурсов у меня было бы что-то вроде:
image_accessor :res_image
field :res_image_uid, type: String
field :res_image_name, type: String
def create_image_from_base64(base_64_encoded_data)
file = File.open('temp.png', 'wb') do|f|
f.write(Base64.decode64(base_64_encoded_data))
end
resource = # create Resource with temp file
file.close
resource.res_image.remote_url
end
Вопросы:
Как создать "Запись с файлом"?
Есть ли лучший подход для обработки вставленных / перетаскиваемых изображений base64 в TinyMCE с помощью стрекозы?
1 ответ
Даже если это старый вопрос:
посмотрите на это: https://groups.google.com/forum/