为了账号安全,请及时绑定邮箱和手机立即绑定

如何从二维数组中的表单接收图像?

如何从二维数组中的表单接收图像?

PHP
眼眸繁星 2021-12-24 15:46:14
我有一个上传产品的表单,一个用户可以上传1个以上的产品,每个产品可以有很多图片(最多6张)示例:产品 0 = 图像 1、图像 2、图像 3。产品 1 = 图像 1、图像 2。这是数组形式的样子:Images[0][0] = image 1Images[0][1] = image 2Images[0][2] = image 3Images[1][0] = image 1Images[1][1] = image 2问题是我没有从表单中收到二维数组,我想我收到的是一个包含 N 个图像的数组,就像这样Images[0]Images[1]Images[2]Images[3]Images[4]这使得无法将图像分配给产品。我正在接收图像$_FILES['photo']['name']并循环遍历数组发送图像的形式是这个<input type="file" class="form-control-file" id="photo" name="photo[]" onchange="return fileValidation()" value="Photo" multiple="multiple" required/>我不知道我是否需要添加 name="photo[][]" 或类似的东西其实上传图片不是问题,那部分工作正常,问题来了,当我们需要将每张图片添加到对应的产品中时,如果我们在一个数组中收到一堆图片就不可能知道如何许多图像被发送到每个产品。
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

也许使用下标将图像集与每个产品相关联:


<form>

    <input type="file" name="product[0][image][]" ...>

    <input type="file" name="product[1][image][]" ...>

</form>

然后,您可以使用以下命令遍历图像集:


foreach ($_FILES['product']['image'] as $k => $v) {

    foreach ($v['name'] as $name) {

        echo "Processing item $name in image set $k";

    }

}


查看完整回答
反对 回复 2021-12-24
?
Qyouu

TA贡献1786条经验 获得超11个赞

上传文件时,PHP$_FILES不是文件数组,而是类似的数组,


Array(

    [name] => Array

        (

            [0] => facepalm2.jpg

            [1] => facepalm3.jpg

        )


    [type] => Array

        (

            [0] => image/jpeg

            [1] => image/jpeg

        )

        ...

)

你应该像这样访问它


foreach($_FILES["photo"]["tmp_name"] as $index => $temp_name){

    echo $_FILES["photo"]["name"][$index];

    echo $_FILES["photo"]["size"][$index];

}


查看完整回答
反对 回复 2021-12-24
  • 2 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号