【问题标题】:PHP Loop through nested directoriesPHP循环遍历嵌套目录
【发布时间】:2017-07-30 03:20:31
【问题描述】:

在我的代码中,我为该目录创建了一个文件夹和子文件夹。因此,当用户发送文件时,我会使用他们的“userid_fullname”创建一个目录,遍历文件,然后提交到 fullname 文件夹。但是每次用户提交文件时,第一个文件会进入文件夹,其他文件会消失。我相信问题在于我的“$key”变量,因为它控制计数。这是我的代码。

PHP

<?php

if($_SERVER['REQUEST_METHOD'] =="POST"){
    $currentDirectory = getcwd();

    $userid = "8503";
    $fullname = "peopl39e";    


    foreach($_FILES['file']['tmp_name'] as $key => $error){

        $file_tmp = file_get_contents($_FILES['file']['tmp_name'][$key]);
         //keep only A-Z and 0-9 and everything else KILL
        $file_name = preg_replace("/[^a-z0-9\.]/", "_", strtolower($_FILES['file']['name'][$key]));
        $file_name = strtotime("now")."_".$file_name;

        $dir = "devPacks/" .$userid."_".$fullname;
        if(is_dir($dir)==false){

                mkdir($dir, 0777);
            }
        if(!move_uploaded_file($_FILES['file']['tmp_name'][$key],$dir.'/'.$file_name)){

                die("File didn't send!");

    }else{


            die("GOOD");
        }
}
}

?>

<form method="post" enctype="multipart/form-data" autocomplete="off">
    <br>
    Select Pack Screenshots/Video: <input type="file" name="file[]" multiple>
<br></br>
    <input type="submit" name="submit">
</form>

【问题讨论】:

  • die("GOOD");for 是什么?如果你可以移动文件不是你的代码将退出。 (“文件未发送!”或“好”)
  • 仅供测试使用。
  • 好的,但是如果你有这个,你的循环不会运行不止一次,因为 die 会结束执行
  • 哇,我什至没听懂...谢谢
  • 我已将此作为答案发布

标签: php file directory


【解决方案1】:

循环运行一次后,您的代码的以下部分将停止执行:

 if(!move_uploaded_file($_FILES['file']['tmp_name'][$key],$dir.'/'.$file_name)){

            die("File didn't send!");

}else{


        die("GOOD");
    }
}

如果我理解正确,您添加了die("GOOD"); 行,以便您在提交一次后看不到表单。您可以执行以下操作来实现此目的:

$uploadCount = 0;
if(!move_uploaded_file($_FILES['file']['tmp_name'][$key],$dir.'/'.$file_name)){
$uploadCount++;
}
die("$uploadCount file(s) uploaded");

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多