PHP move_uploaded_file()仅将最后一张图片移动到该文件夹

时间:2019-05-07 15:11:29

标签: php html forms

我有一个表单,我想上传多张图像并将其存储在文件夹中,但是我的程序仅存储最后选择的图像。

我的表单:

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="mount"/>

我的PHP代码:

<form method="POST" action="server.php" enctype="multipart/form-data">
     <input type="file" name="pictures[]" multiple>
     <button class="btn btn-success btn-block" name="add">ADD</button>
</form>

如何解决此问题,以便将所有图片都移到“图像”文件夹中?

2 个答案:

答案 0 :(得分:2)

不要使用嵌套循环。您要并行处理两个数组,而不是作为叉积。

foreach ($image_names as $i => $image_name) {
    $image_tmpname = $image_tmpnames[$i];
    $foto = 'images/' . $image_name;
    move_uploaded_file($image_tmpname,$foto);
}

答案 1 :(得分:2)

也许可以尝试其他循环,并设置距离路径。

我精心设计了可以在您的解决方案中实现的代码:

$arquivo = isset($_FILES['img']) ? $_FILES['img'] : FALSE;
for ($controle = 0; $controle < count($arquivo['name']); $controle++){
    $destino = $diretorio."/".$arquivo['name'][$controle];
    if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){
        echo "Upload sucess<br>"; 
    }else{
        echo "Erro upload";
    }           
}