Ich möchte eine Datei von einem Android Client auf einen Rails JSON API Server hochladen.Hochladen einer Datei auf den Rails JSON API Server mit Paperclip und Multipart Anfrage
Ich schicke eine multipart/form Anfrage aus dem Android-Client, der so aussieht:
Content-Type: multipart/form-data; boundary=d99ArGa2SaAsrXaGL_AdkNlmGn2wuflo5
Host: 10.0.2.2:3000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
--d99ArGa2SaAsrXaGL_AdkNlmGn2wuflo5
Content-Disposition: form-data; name="POSTDATA"
Content-Type: application/json; charset=UTF-8
Content-Transfer-Encoding: 8bit
{"tags":["test"],"location_id":1,"post":{"content":"test"}}
--d99ArGa2SaAsrXaGL_AdkNlmGn2wuflo5
Content-Disposition: form-data; name="IMAGEDATA"; filename="testimage.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary
<BINARY DATA?
--d99ArGa2SaAsrXaGL_AdkNlmGn2wuflo5--
in den Schienen-Controller Ich schaffe das neue Post mit diesem Code:
@parsed_json = JSON(params[:POSTDATA])
@post = @current_user.posts.new(@parsed_json["post"])
Wie mache ich Paperclip den Anhang aus dem mehrteiligen Formular speichern?
ich kann es mit etwas wie folgt aus:
if params.has_key?(:IMAGEDATA)
photo = params[:IMAGEDATA]
photo.rewind
@filename = "/tmp/tempfile"
File.open(@filename, "wb") do |file|
file.write(photo.read)
end
@post.photo = File.open(@filename)
end
aber es sieht nicht wie die beste Lösung, auch die Dateinamen, die in ther mehrt Anforderung übergeben wird nicht verwendet wird.
irgendwelche ideen wie dies zu tun? –