Android デバイスから PHP サーバーにコメント付きの画像を送信したいと考えています。JSONを利用してデータを交換したい。私は多くの場所を見ましたが、正しいヒントが得られません。これをPHPで動作させるための指針を誰かが提案できますか?
データロードが増加し、画像サイズもこれに問題があるため、base65 を使用したくありません。これを開発するためのあなたの考えと正しいアプローチを提案してください。
私のAndroidコード:
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("price", price));
params.add(new BasicNameValuePair("description", description));
params.add(new BasicNameValuePair("image","/sdcard/DCIM/android_1.png"));
// getting JSON Object
JSONObject json = jsonParser.makeHttpRequest(url_create_product,"POST", params);
// check log cat fro response
Log.d("Create Response", json.toString());
// check for success tag
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// successfully created product
Intent i = new Intent(getApplicationContext(), AllProductsActivity.class);
startActivity(i);
// closing this screen
finish();
} else {
// failed to create product
}
} catch (JSONException e) {
e.printStackTrace();
}
マルチパートで画像を追加すると、次のようになります。
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
try {
reqEntity.addPart("name", new StringBody(name));
reqEntity.addPart("Id", new StringBody(price));
reqEntity.addPart("title",new StringBody(description));
//reqEntity.addPart("pic", new FileBody(new File("/sdcard/DCIM/android_1.png")));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Bitmap bitmap = null ;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
ByteArrayBody bab = new ByteArrayBody(data, "/sdcard/android_1.png");
reqEntity.addPart("pic", bab);
このマルチパート reqentitty を JSON で渡す方法がわかりません:
// JSON オブジェクトの取得
JSONObject json = jsonParser.makeHttpRequest(url_create_product,"POST", params);
これをPHPで画像として読み取る方法。以下のように画像PHP作業コードなし:
<?php
/*
* Following code will create a new product row
* All product details are read from HTTP Post Request
*/
// array for JSON response
$response = array();
$target_path1 = "uploads/";
// check for required fields
if (isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) {
$name = $_POST['name'];
$price = $_POST['price'];
$description = $_POST['description'];
//I have data from android here now but How I can read image here ?
ここで 2 つの質問があります: 1. イメージを JSONObject の一部として渡す方法 (イメージなしで動作する最初のコード) 2. このイメージを PHP で読み戻すにはどうすればよいですか?
コメントや提案をいただければ幸いです。ありがとう。