【问题标题】:errro in Uploading base64 image from android to server using php使用php将base64图像从android上传到服务器时出错
【发布时间】:2018-12-15 08:13:32
【问题描述】:

我正在将手机图库中的图片上传到我的数据库。我将图像的 base64 字符串发布到服务器。这是我的 php 代码。

    <?php 

 define('DB_HOST', 'localhost');
 define('DB_USER', 'root');
 define('DB_PASS', '');
 define('DB_NAME', 'sample_userdata');

 //connecting to database and getting the connection object
 $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

if($conn)
{
    $image=$_POST["image"];
    $uploadpath="uploads/profilepic.jpg";
    if(isset($image)){
        if(file_put_contents($uploadpath,base64_decode($image))){
        echo json_encode(array('response'=>'Image Uploaded successfully'));}

    }else{
        echo json_encode(array('response'=>'Image upload failed'));
    }
}else{

echo json_encode(array('response'=>'Image upload failed 2'));}
mysqli_close($conn);
?>

图片已成功保存在上传文件夹中,android logcat 显示响应

D/Response: {"response":"图片上传成功"}

但包含代码的 localhost/profilepic.php 显示注意:

未定义索引:第 13 行 C:\xampp\htdocs\profilepic.php 中的图像 {"response":"图片上传失败"}

什么问题,图片已成功存储在uploads文件夹中,android给出成功消息但localhost页面给出错误。

【问题讨论】:

    标签: java php android mysql server


    【解决方案1】:

    从浏览器localhost/profilepic.php 中点击 URL 是 GET 方法。该代码通过 POST 请求排除图像。

    您可以添加检查以验证请求以避免此警告消息。

    在文件顶部添加以下代码以检查图像是否随请求发送

    if( !isset($_POST["image"]) || empty($_POST["image"])
    {
        echo json_encode(array('response'=>'Image is required'));
        exit();
    }
    

    【讨论】:

    • 添加此代码后浏览器页面为空白,无响应
    • Opps,我只是错过了回显 json 响应。我已经更新了我的答案
    • 是的,但我将图像作为 base64 字符串发送,为什么 $image 为空
    • if($_SERVER['REQUEST_METHOD']=='POST') 我添加了这一行仍然没有得到响应
    • 您的安卓代码或浏览器没有得到成功响应?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2015-03-29
    • 2011-10-15
    相关资源
    最近更新 更多