我想将带有Android设备注释的图像发送到PHP服务器。我想利用JSON来交换数据。我看了很多地方,但我没有得到正确的提示。任何人都可以提出一些建议来使用PHP吗?
我不想使用base65,因为它会增加dataload,图像大小也是一个问题。请建议您的想法和正确的方法来发展这一点。
我的Android COde:
// 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();
}
当我用multipart:
添加图像时 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格式阅读此图像?
我真的很感激任何意见或建议。 感谢。
答案 0 :(得分:0)
我从未使用JSON传递图像,只使用文本,但您可以使用android通过使用HTTP发布信息。看看这个教程,它帮助了我http://reecon.wordpress.com/2010/04/25/uploading-files-to-http-server-using-post-android-sdk/