如何使用json将图像从Android Sqlite上传到本地服务器文件夹

时间:2014-08-14 05:51:28

标签: android sqlite upload localhost

在Android Sqlite数据库中有图像和文本。我需要的是通过本地服务器使用Json将这些图像和文本上传到我的系统文件夹。我不知道,请通过提供想法和编码帮助我任何人例子..我搜索了这个话题..大部分基于Php服务器的链接..如果有人帮助我,请提前感谢..

1 个答案:

答案 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');

这就是它的全部......!

尚未通过

测试代码