Base64エンコード形式で受け取っている画像のコンテンツタイプとファイル名を取得しようとしています。ここ base64でエンコードされた画像からファイル名とコンテンツタイプを取得するruby on ruby
は、コントローラ内にBase64エンコードされた画像require 'net/http'
require "rubygems"
require 'active_support'
url = URI.parse('http://localhost:3000/')
image = ActiveSupport::Base64.encode64(open("public/images/rails.png").to_a.join)
post_params = {'image' => image }
Net::HTTP.post_form(url, post_params)
とPOSTリクエストを行っているコードですが、私はこの画像のコンテンツタイプとファイル名を取得する必要があります。だから最初に私はそれをデコードしています
image = ActiveSupport::Base64.decode64(params[:image])
image_data = StringIO.new(image)
そして、私は立ち往生しています!
私は基本的にこの画像をpaperclipで保存します。いくつかの深刻な助けが必要です!
更新: コンテンツタイプとファイル名のパラメータを送信できません。私はこれを送信しているクライアントを模倣していただけです(余分なパラメータを追加することはできません)。
別のpost_paramを追加できませんか? {'filename' => 'rails.png'}のようなもの – Serabe
いいえ!私が開発しているAPIは、他のパラメータを送信しません。エンコードされた画像データのみ。だから、私はこれが他のパラメータを送信せずに可能かどうかを知りたい。 – Madhusudhan
あなたは何かを保存するためにユーザー提供のファイル名を使用することを考えていませんか?それは悪い考えです。 –