android/rails multipart upload problem
Posted
by trioglobal
on Stack Overflow
See other posts from Stack Overflow
or by trioglobal
Published on 2010-04-03T23:21:23Z
Indexed on
2010/04/03
23:23 UTC
Read the original article
Hit count: 371
My problem is that I try to upload an image and some text values to an rails server, and the text values end up as files, insted of just param values.
How the post looks on the server Parameters: {"action"=>"create", "controller"=>"problems", "problem"=>{"lon"=>#File:/tmp/RackMultipart20100404-598-8pi1vj-0>, "photos_attributes"=>{"0"=>{"image"=>#File:/tmp/RackMultipart20100404-598-pak6jk-0>}}, "subject"=>#File:/tmp/RackMultipart20100404-598-nje11p-0>, "category_id"=>#File:/tmp/RackMultipart20100404-598-ijy1oo-0>, "lat"=>#File:/tmp/RackMultipart20100404-598-1a7140w-0>, "email"=>#File:/tmp/RackMultipart20100404-598-1b7w6jp-0>}}
part of the android code
try {
File file = new File(Environment.getExternalStorageDirectory(), "FMS_photo.jpg");
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://homepage.com/path");
FileBody bin = new FileBody(file);
Charset chars = Charset.forName("UTF-8");
MultipartEntity reqEntity = new MultipartEntity();
//reqEntity.addPart("problem[subject]", subject);
reqEntity.addPart("problem[photos_attributes][0][image]", bin);
reqEntity.addPart("problem[category_id]", new StringBody("17", chars));
//....
post.setEntity(reqEntity); HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
resEntity.consumeContent();
}
return true;
} catch (Exception ex) { //Log.v(LOG_TAG, "Exception", ex); globalStatus = UPLOAD_ERROR; serverResponse = ""; return false; } finally {
}
© Stack Overflow or respective owner