Использование cropit Я получаю изображение bas64, закодированное на рельсах через параметры.Загрузить base64 закодированное изображение с помощью paperclip - Rails
image = params['image'].gsub('data:image/jpeg;base64,', '')
decoded_file = Base64.decode64(image)
, а затем я сохранить амазонка s3 с скрепкой
begin
file = Tempfile.new(['image', '.jpg'])
file.binmode
file.write decoded_file
unless params['image_id']
media_img = Media::Image.new()
media_img.image = file
if media_img.save
render json: {status: 'success'}
else
render json: {status: 'error'}
end
else
img = Media::Image.find(params['image_id'])
img.update_attribute(:image, file)
img.update_attribute(:name, params['image_name'])
render json: {status: 'success'}
end
file.close
ensure
file.unlink
end
Основная проблема заключается в том, что код работает только в формате JPEG изображений, потому что я использую GSUB только для data:image/jpeg;base64,
и при создании TempFile я создал jpg Tempfile.new(['image', '.jpg'])
. Итак, как я могу справиться с лучшей практикой jpg, jpeg и png?