在Android Sqlite数据库中有图像和文本。我需要的是通过本地服务器使用Json将这些图像和文本上传到我的系统文件夹。我不知道,请通过提供想法和编码帮助我任何人例子..我搜索了这个话题..大部分基于Php服务器的链接..如果有人帮助我,请提前感谢..
答案 0 :(得分:0)
您不能简单地将文本和图像直接放在服务器上。您需要具有服务器端逻辑来处理请求。在搜索时,你必须找到很多PHP服务器端代码,因为PHP是最容易上手的。
我能想到以JSON格式发送图像和文本的唯一方法是将图像转换为Base64
。在服务器端,您必须将它们转换回图像并保存。
另外,请勿直接在Sqlite数据库中保存图像。它不是为处理大型BLOB(图像或任何其他二进制数据)而设计的。您可以将图像保存到文件系统并将路径保存在数据库中。
您可以使用以下代码将JSON字符串从Android发送到PHP
Android上的
JSONObject jsonObject = new JSONObject();
jsonObject.put("text", "YOUR_TEXT_HERE");
jsonObject.put("image", "YOUR_BASE64_IMAGE_HERE");
StringEntity postBody = new StringEntity(jsonObject.toString());
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://YOUR_URL_HERE");
httpPost.setEntity(postBody);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
httpClient.execute(httpPost);
PHP代码
$raw_json_string = file_get_contents('file://input');
$json = json_decode($raw_json_string);
// Copied shamelessly from: http://stackoverflow.com/a/15153931/815540
function base64_to_jpeg($base64_string, $output_file) {
$ifp = fopen($output_file, "wb");
$data = explode(',', $base64_string);
fwrite($ifp, base64_decode($data[1]));
fclose($ifp);
return $output_file;
}
$text = $json->text;
$base64_image = $json->image;
base64_to_jpeg($base64_image, 'PATH_YOU_WANT_TO_SAVE_IMAGE_ON_SERVER');
这就是它的全部......!
尚未通过
测试代码