使用php将android中的base64图像上传到服务器时出错

时间:2018-07-06 17:20:40

标签: java php android mysql server

我正在将图像从手机库上传到我的数据库。我正在将图像的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);
?>

图像已成功保存到uploads文件夹中,并且android logcat显示了响应

  

D /响应:{“响应”:“图像成功上传”}

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

  

未定义索引:第13行上C:\ xampp \ htdocs \ profilepic.php中的图像   {“响应”:“图像上传失败”}

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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