php://输入令人困惑的数组信息

时间:2014-05-13 07:41:13

标签: php base64

我有一个base64文本,这个文本非常庞大,是从Ajax发布的。在控制台中,我可以看到代码,如果我将其复制并粘贴到base64图像转换器中,它可以正常工作。

在PHP $_POST中始终为空,但php://input显示所有信息,这是一个JSON,在数组中有四个部分。在'imgData'部分下,图像二进制代码完整且有效,但如果我这样做:

 $data = json_decode(file_get_contents('php://input'));
(A) print_r($data); // Shows all the image data under [imgData]

(B) print_r($data->imgData); //  Only shows a small part of the image data

以下是输出(A)的示例:

stdClass Object
(
    [switch] => addImage
    [table] => tbl_images
    [propid] => 
    [imgData] => data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAAHGlET1QAAAACAAAAAAAAAH0AAAAoAAAA 

这是exmaple输出(B):

data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAAHGlET1QAAAACAA

但(B)只是数据的一部分?有什么理由吗?

更新

$data = json_decode(file_get_contents('php://input'));
(A) var_dump($data);

(B) var_dump($data->imgData); 

以上内容现在相同,并提供相同的字符串大小。

当我把它放入SQL查询时:

        $detail = "Property_Id, Image_Data ) VALUES ( 213, " . $data->imgData;

        $sql = "INSERT INTO " . $table . " ( " . $detail . " )";
        echo $sql;
        $addQ = $mysqli->query($sql);

        echo 'image added';

        print_r($mysqli->error);
    } else {
        echo "No params added";
    }

它仍然没有显示$ sql字符串的结尾?

0 个答案:

没有答案