如何编码要在JSON数组中使用的图像?

时间:2015-04-28 09:15:29

标签: php json amazon-web-services amazon-ec2 amazon-s3

我想做以下事情:

  1. 连接到Amazon S3并获取图像(.jpg)或声音(.m4a)。
  2. 然后我想把它们放在一个对象数组中。
  3. 将他们发送给客户
  4. 该文件存在于S3中,可以通过浏览器访问。

    第一步已经完成以下任务:

    try{
        $result = $client->getObject(array(
            'Bucket' => $bucket,
            'Key'    => $filename
        ));
    } catch (Exception $e) { //ERROR
        echo($e->getMessage());// FOR THE ERROR
    }
    

    我使用$ result ['Body']来获取图像。

    注意:服务器是EC2实例,因此密码已经使用IAM中的角色完成

    第二步:

    image_array=[image1,sound1,sound2,image2];
    
    echo json_encode(image_array);
    

    这一步给了我一个空数组。我知道由于编码它是空的。图像是二进制数据对象,使用JSON无法正常工作。但是正确的方法是什么?我应该做点什么吗

    image_array=[json_encode(image1),etc.];
    

    或者我应该做这样的事情

    image_array=[utf8_encode(image1),etc];
    

    问题:我怎么能用JSON代码重新提供图像,这样我就不会破坏并且可读?

    注意:我用它来向客户提供与此类似的信息

    total_array=[ [image1,property1,property2],
                  [image2,property1,property2],
                  [image3,property1,property2],
    ];
    

1 个答案:

答案 0 :(得分:1)

我之前使用过base64_encode来传输图像数据。

base64_encode($image);