12
votes

Téléchargement d'une image de Android (avec client HTTP asynchrone Android) sur Rails Server (avec PaperClip)

J'essaie de télécharger un fichier image via la méthode http Post de l'appareil Android vers Rails Server. Mais la publication d'une image ne fonctionne pas. Plus spécifiquement, le paramètre Post (y compris le fichier image) ne semble pas être envoyé correctement.

J'utilise le client HTTP asynchrone Android (http://loopj.com/androïd-async-http/) pour poster un Image de Android, et le code pour l'affichage de l'image est comme celui-ci. P>

Started POST "/pictures/" for y.y.y.y at 2012-09-03 18:23:00 +0900
Processing by PicturesController#create as HTML
  Parameters: {"picture"=>{"name"=>"PictureName"}}
   (0.1ms)  begin transaction
  SQL (0.5ms)  INSERT INTO "pictures" ("album_id", "created_at", "image_content_type", "image_file_name", "image_file_size", "image_updated_at", "name", "updated_at", "user_id") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)  [["album_id", nil], ["created_at", Mon, 03 Sep 2012 09:23:00 UTC +00:00], ["image_content_type", nil], ["image_file_name", nil], ["image_file_size", nil], ["image_updated_at", nil], ["name", "PictureName"], ["updated_at", Mon, 03 Sep 2012 09:23:00 UTC +00:00], ["user_id", nil]]
[paperclip] Saving attachments.
   (11.0ms)  commit transaction
Redirected to http://x.x.x.x:3000/pictures/10                                                                                                                               
Completed 302 Found in 15ms (ActiveRecord: 11.6ms)


2 commentaires

Merci. Je cherchais une question similaire.


Je reçois {"Statut": "Erreur", "Erreur": {"Image_Content_Type": ["Est invalide"], "Image": ["Est invalide"]}}. Quelqu'un a-t-il déjà eu ce problème?


3 Réponses :


1
votes

Vous pouvez télécharger les images via la multiparience.

Multiparentalité, partie de httpmime 4.0 et ultérieure. Vous permet de mettre plusieurs pièces, séparées par des chaînes de limites et codées à l'aide de Charset donnée, dans la demande HTTPPOST.

Pour plus d'informations et comment utiliser MultiPart, voir Ce et Ce . .


3 commentaires

S'il vous plaît voir un lien supplémentaire que j'ai ajouté dans ma réponse.


Merci beaucoup pour votre réponse!!! Maintenant, je comprends d'utiliser la multiparentalité, en instance de la multiparentalité et en appliquant une méthode addPart à ce sujet, puis appelez la méthode de seentity à l'instance HTTPPOST. Mais ce que j'utilise n'est pas la classe httppost, mais ASYNCHTTPClient classe. Pourriez-vous me dire comment faire la même chose sur ASYNCHTTPCLIENT?


Ahhh ... Désolé, savez-vous faire la même chose (utiliser la multiparentalité) sur Asynchttpclient?



0
votes

Il y a une description comme ci-dessous, dans Android AsynchttpClient Page officielle (http://loopj.com/androïd-async-http/)

"Multipart Fichier télécharge sans bibliothèques de tiers supplémentaires "

et dans la section des "fichiers de téléchargement avec demandeparams", ils ont un exemple de code pour télécharger une image xxx

C'est ce que j'ai fait, bien que je n'ai pas fonctionné. Cela aide-t-il à répondre à ma question?


1 commentaires

Salut Ryo, as-tu eu la réponse à votre question?