您好我正在进行一项课程,我需要将数据发送到带有PHP后端的远程MySQL服务器。目前我在发送和接收图片时遇到了一些问题。
我目前正在做的是将图像编码为base64并通过http post将其发送到我的服务器。我检查了发送的数据,一切都很好。但是我的PHP方面没有正确处理它。
这是我正在做的......
这是我用于将位图转换为字符串...
的方法 ByteArrayOutputStream baos=new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 90, baos);
byte [] b=baos.toByteArray();
String imageString=Base64.encodeToString(b, Base64.DEFAULT);
然后我在http帖子中发送此imageString,它由下面的PHP脚本接收
$uploadDIR = '../data/';
if ($_REQUEST['picture']!=null){
$image = base64_decode($_REQUEST['picture']);
$file = $uploadDIR . uniqid().'.jpeg';
file_put_contents($file, $image);
$sql = "
INSERT INTO comments
(image)
VALUES (
'".$file."'
)";
}
executeSQLQuery($sql);
尝试几次后,甚至文件都没有存储在该位置。
提前感谢您的任何帮助:)
答案 0 :(得分:0)
java中的代码,假设图像已经转换为位图:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmIcone.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] byte_arr = stream.toByteArray();
String image_str = Base64.encodeBytes(byte_arr);
namevaluepair.add(new BasicNameValuePair("image", image_str));
在服务器中:
$base= $_REQUEST['image'];
$buffer = base64_decode($base);
$buffer = mysql_real_escape_string($buffer);