我想将带有一些评论的图像从 Android 设备发送到 PHP 服务器。我想利用 JSON 来交换数据。我看了很多地方,但我没有得到正确的提示。任何人都可以提出一些建议来让它与 PHP 一起使用吗?
我不想使用 base65,因为它会增加数据负载,并且图像大小也是一个问题。请提出您的想法和正确的方法来发展它。
我的安卓代码:
// 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);
我不确定如何使用 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 ?
所以我在这里有两个问题: 1. 如何将图像作为 JSONObject 的一部分传递(第一个代码在没有图像的情况下工作) 2. 如何在 PHP 中读回这个图像?
我真的很感激任何意见或建议。谢谢。