私のクライアントは、BlackberryとAndroidの携帯電話から画像をアップロードしようとしています。彼らはポストするのが好きではない)a)フォームパラメータまたはb)マルチパートメッセージ。彼らがやりたがっていることは、ファイルのデータだけでURLへのPOSTを行うことです。このようなCarrierwaveを使ってRAWファイルをRAWファイルにアップロードする
何かがカールで行うことができます curl -d @google.png http://server/postcards/1/photo.json -X POST
私はポストカードモデルの写真の属性に、右のディレクトリに置くためにアップロードされた写真をしたいと思います。
コントローラでこのようなことをしていますが、画像がディレクトリ内で壊れています。私は今のところ、「PNG」にファイルを手動で名前変更をしています:
def PostcardsController < ApplicationController
...
# Other RESTful methods
...
def photo
@postcard = Postcard.find(params[:id])
@postcard.photo = request.body
@postcard.save
end
モデル:これは行うことができますが、あなたはまだのorignalファイル名を送信するためにクライアントが必要になります
class Postcard < ActiveRecord::Base
mount_uploader :photo, PhotoUploader
end
これはかなり正確に私が必要としていたものです。マイナーディテール:新しく作成された写真(UploadedFileクラスの)は、 "original_filename"を何かに設定する必要があります。 Carrierwaveはダミーのデータでも何かが存在することを期待しています。私の主な問題は、データを適切に送信していないため、私のカールコマンドであるように見えます。 – jevy
誰かが私に尋ねました。 curlコマンドの場合、私はこれを使用しました: 'curl --form" image [[email protected];] "http:// server/images.json' – jevy