【发布时间】:2014-08-14 05:51:27
【问题描述】:
我在 android Sqlite 数据库中有图像和文本。我需要使用 Json 通过本地服务器将这些图像和文本上传到我的系统文件夹。我不知道,请通过提供想法和编码或帮助我任何人示例..我用谷歌搜索了这个主题..大多数链接仅基于 Php 服务器..如果有人帮助我,请提前感谢..
【问题讨论】:
标签: android sqlite upload localhost
我在 android Sqlite 数据库中有图像和文本。我需要使用 Json 通过本地服务器将这些图像和文本上传到我的系统文件夹。我不知道,请通过提供想法和编码或帮助我任何人示例..我用谷歌搜索了这个主题..大多数链接仅基于 Php 服务器..如果有人帮助我,请提前感谢..
【问题讨论】:
标签: android sqlite upload localhost
您不能简单地将您的文本和图像从您的应用程序直接放在服务器上。您需要有服务器端逻辑来处理请求。在搜索的过程中,你一定发现了很多 PHP 服务端代码,因为 PHP 是最容易上手的。
我能想到的以 JSON 格式发送图像和文本的唯一方法是将图像转换为 Base64。在服务器端,您必须将它们转换回图像并保存。
另外,不要将图像直接保存在 Sqlite 数据库中。它不是为处理大型 BLOB(图像或任何其他二进制数据)而设计的。您可以将图像保存到文件系统并将路径保存在数据库中。
您可以使用以下代码将 JSON 字符串从 Android 发送到 PHP
在安卓上
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');
这就是它的全部......!
虽然没有测试过代码
【讨论】:
Base64
JSON创建和POSTing。