通过Json获取多个图像

时间:2017-01-28 23:19:11

标签: php arrays json loops foreach

我试图遍历所有可用图片并将其提交给客户端。使用下面的代码,当我一次上传多张图片时,我只能得到一个。完全相同的代码也在我的PHP页面中,并完美地显示所有图像。所以我假设它与我构建数组的尝试或循环本身有关。 ;}

我知道我的脚本目前很容易受到sql注入的攻击,后来确保安全。;)

$sqlhhh = "SELECT * FROM userphotos WHERE photo_name='".$row['photo_title']."' 
AND photo_ownerid='".$row['streamitem_creator']."' 
AND photo_datetime='".$row['streamitem_timestamp']."' ORDER BY photo_id DESC";
$resulthhh = mysqli_query ($mysqli,$sqlhhh)or die(mysqli_error($mysqli)); 
$photo_num=mysqli_num_rows($resulthhh);

while ($rowhhh = mysqli_fetch_assoc($resulthhh)) {
    $json = array(
        'posts' => array(),
    );

    $images = array();
    $image[] = $rowhhh['photo_imagedata'];
}

foreach ($image as  $ima) {
    if($photo_num==1){
        $posts['streamitem_imageuploaded']='<img  src="data:image/jpeg;base64,'. base64_encode($ima) .'" />';
    }else{
        $posts['streamitem_imageuploaded']='<img class="stream_images" style="width:235px;height:200px;object-fit:cover;margin:2px;padding:2px;" src="data:image/jpeg;base64,'. base64_encode($ima) .'" />';
    }
}
$json['posts'][] =  $posts;

1 个答案:

答案 0 :(得分:1)

那是因为你在target="blank"循环的每次迭代中初始化$images数组。在while()循环之外使用此语句$images = array();。同样的逻辑也适用于while()数组。

另外,请看以下两行,

$json

$image[] = $rowhhh['photo_imagedata'];

foreach ($image as $ima) { ... 未定义,您必须在这些地方使用$image数组。

因此,请按以下方式重构您的$imageswhile()循环,

foreach()