如何将base64映像发送到服务器 - PHP

时间:2016-03-09 00:29:02

标签: php android sql-server base64

我通过PHP文件从Android应用程序向服务器发送base64字符串 我从教程视频中得到了这个:

<?php
    require 'Init.php';
    header('Content-type : bitmap; charset=utf8');

    if(isset($_POST['encoded_string'])){

        $encoded_string = $_POST['encoded_string'];
        $image_name = $_POST['image_name'];

        $decoded_string = base64_decode($encoded_string);

        $path = 'ProfileIcons/' .$image_name;

        $file = fopen($path, 'wb');

        $is_written = fwrite($file, $decoded_string);
        fclose($file);
    }
?>

它将图像存储在目录中,但是当您打开时,它没有图像。这是一个空白的png。代码有问题吗?如果是这样,我应该使用什么?感谢。

1 个答案:

答案 0 :(得分:2)

您应该检查几点:

1.确保服务器已收到base64字符串

  

$ encoded_string = $ _POST [&#39; encoded_string&#39;];

检查$encoded_string的长度,它应该与Android客户端说的长度相同。

  1. 确保解码有效
      

    $ decoding_string = base64_decode($ encoded_string);

  2. 检查$decoded_string的长度,它不应该为零或奇怪的东西。

    1. 确保写入的文件有效
        

      $ is_written = fwrite($ file,$ decoding_string);

    2. $is_written应该是已写入文件的数据的长度,如果是false,那么就会出错。