多个上传文件的标题

时间:2018-03-30 13:54:33

标签: php html file file-rename

我试图通过$ _FILES使用一个输入将多个文件从我的计算机传输到我的项目中的文件夹,文件移动成功,但每次与最后一个文件的标题{{3}相关时,标题都会重复,任何解决方案???也许我应该使用foreach代替for循环???

我的代码:

<body>
    <!--images adding-->
    <form action=" " method="post" enctype="multipart/form-data" style="margin-left:100px;margin-top:100px">
        <div class="display-4">Ajouter images</div>
        <p>
            <input type="file" name="file[]" size="50" class="btn" style='background-color:#374180;color:yellow;' multiple>
        </p>
        <p>
            <input class="btn cursor" type="submit" value="Upload" name='but' style='background-color:#314796;color:yellow;' />
        </p>
    </form>
    <?php
    if(isset($_POST['but'])) {
        $chemin = 'uploads/';
        $fileCount = count($_FILES['file']['name']);
        echo $fileCount;

        for($i=1;$i<=$fileCount;$i++) {
            $chemin = $chemin.basename($_FILES['file']['name'][$i]);
            if(move_uploaded_file($_FILES['file']['tmp_name'][$i],$chemin)) {
                var_dump($_FILES);
            } else {
                echo 'Error uploading ';
            }
        }
    }
?>
</body>

1 个答案:

答案 0 :(得分:3)

每次循环播放时,您都会将另一个名称附加到$chemin,从而使名称越来越长。对目录使用不同的变量,而不是您要复制到的全名。

<?php
if(isset($_POST['but']))
{
    $dir = 'uploads/';
    $fileCount = count($_FILES['file']['name']);
    echo $fileCount;
    for($i=1;$i<=$fileCount;$i++)
    {
        $chemin = $dir.basename($_FILES['file']['name'][$i]);
        if(move_uploaded_file($_FILES['file']['tmp_name'][$i],$chemin))
        {
            var_dump($_FILES);        
        }
        else
        {
            echo 'Error uploading ';
        }

    }
}

?>