【问题标题】:Server PHP script won't properly decode Base64 image string from Android Device服务器 PHP 脚本无法正确解码 Android 设备中的 Base64 图像字符串
【发布时间】:2016-03-18 16:23:12
【问题描述】:

我正在尝试将文本数据和 Base64 编码的图像字符串发送到我的测试服务器。数据成对发送。

ArrayList<NameValuePair> params = new ArrayList<>();
            params .add(new BasicNameValuePair("ownName", text1));
            params .add(new BasicNameValuePair("phone", text4));
            params.add(new BasicNameValuePair("email", text2));
            params .add(new BasicNameValuePair("petName", text5));
            params .add(new BasicNameValuePair("zipCode", text3));
            params .add(new BasicNameValuePair("image", imageString));

图像被编码成一个字符串(其中“b”是我的压缩位图)并与文本项一起发送到服务器。

imageString = Base64.encodeToString(b, Base64.DEFAULT);

我将文本信息添加到我的数据库中,并且我想将图像存储在服务器上。我确定我服务器上的 PHP 脚本是错误的。我已经尝试过其他帖子中的一些建议,有同样的问题,但我没有成功。图像名称显示在我指定的目录中,但大小为 0kb,无法打开。目前,我正在为我的 PHP 端尝试这种格式

$data = $_POST["image"]; 
list($type, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('../image1.jpg', $data[1]);

我尝试了很多变体,但都没有奏效。我是否在解析 POST 图像的正确部分?感谢您提供任何帮助/意见。

谢谢。

【问题讨论】:

标签: php android post base64


【解决方案1】:

解决了这个问题:

<?php

$base = $_POST["image"];
$binary=base64_decode($base);
header('Content-Type: bitmap; charset=utf-8');
$file = fopen('uploaded_image1.jpg', 'w');
fwrite($file, $binary);
fclose($file);

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2014-10-18
    • 1970-01-01
    • 2016-02-05
    相关资源
    最近更新 更多