簡體   English   中英

PHP 上傳文件到多個目錄

[英]PHP upload files to multiple directories

我有下面的代碼試圖將多個文件上傳到多個目錄(年和月)。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <input type="file" name="files[]" id="files" multiple />
    <br/>
    <input type="submit" name="submit" id="button" value="Backup!" />
</form>

<?php

if(isset($_FILES['files'])){
    $year= Date('Y');
    $month = Date('m');

$tempFile = $_FILES['files']['tmp_name'];
    for ($a=2017; $a <= $year; $a++) {
        echo "first<br>";
        if($a == 2017){
            for ($m=11; $m <= 12; $m++) {
                $targetDir = "../".$a."/".$m."/";
                echo "second<br>";

                foreach ($tempFile as $key => $tmp_name) {
                    echo "third<br>";

                    $fileName = $_FILES['files']['name'][$key];
                    $fileTemp = $_FILES['files']['tmp_name'][$key];
                    $targetFile = $targetDir.$fileName;
                    echo $targetFile."<br>";

                    if(!file_exists($targetFile)){
                        if(move_uploaded_file($fileTemp, $targetFile)){
                            echo "uploaded!<br>";
                        }else {
                            echo "error<br>";
                        }
                    }else {
                        echo "file already exists in ".$targetDir."<br>";
                    }
                }

            }
        }
    }
}
?>

2017 只有兩個目錄(11 和 12)。 上傳在第一個目錄 (11) 中正確完成,但是當它嘗試上傳到第二個目錄 (12) 時出現echo error

代碼正在執行的循環順序是:

first
second
third
../2017/11/file-to-change.php
uploaded!
second
third
../2017/12/file-to-change.php
error
first
first

我可以將多個文件上傳到它獲得的第一個目錄,但不能將任何內容上傳到第二個。 我嘗試使用另一個for()但它給我的結果與foreach()相同。

如果我錯了,請糾正我,但我認為在第二次循環中,文件在上傳到第一個目錄后不再可用。

所以我把它上傳到第一個目錄,然后我把它復制到其他目錄。

foreach ($tempFile as $key => $tmp_name) {

    $fileName = $_FILES['files']['name'][$key];
    $fileTemp = $_FILES['files']['tmp_name'][$key];
    $targetFile = $targetDir.$fileName;

    if(!file_exists($targetFile)){
        if(move_uploaded_file($fileTemp, $targetFile)){
            echo "Uploaded in: ".json_encode($targetDir, JSON_UNESCAPED_SLASHES)."<br>";
        }else {
            echo "Error uploading in: ".json_encode($targetDir, JSON_UNESCAPED_SLASHES)."<br>";
        }
    }else {
        echo "File already exists in ".json_encode($targetDir, JSON_UNESCAPED_SLASHES)."<br>";
    }
}

for ($a=2017; $a <= $year; $a++) {
    if($a == 2017){
        for ($m = 11; $m <= 12; $m++) {
            $targetDirToCopy = "../".$a."/".$m."/".$fileName;
            if(copy($targetFile, $targetDirToCopy)){
                echo "Uploaded in: ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
            }else {
                echo "File already exists in ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
            }

        }
    }
    if($a == 2018){
        for ($m = 1; $m <= 12; $m++) {
            $targetDirToCopy = "../".$a."/".$m."/".$fileName;
            if(copy($targetFile, $targetDirToCopy)){
                echo "Uploaded in:".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
            }else {
                echo "File already exists in ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
            }

        }
    }
    if($a == $ano){
        for ($m = 1; $m < ($mes-1); $m++) {
            $targetDirToCopy = "../".$a."/".$m."/".$fileName;
            if(copy($targetFile, $targetDirToCopy)){
                echo "Uploaded in:".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
            }else {
                echo "File already exists in ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
            }

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM