根据当前年份和月份创建上传路径

mae*_*y m 2 php uploading mkdir

对于上传,我想检查年文件夹和月子文件夹是否已经存在。如果没有,我想创建它们并将我的上传保存在那里。

<?php
     $newname =  $_POST['changename'];
      $temp = explode(".", $_FILES["uploadfile"]["name"]);
        $extension = end($temp);

        if(!(
        $_FILES['uploadfile']['type']=='image/jpeg' ||
        $_FILES['uploadfile']['type']=='image/png' ||
        $_FILES['uploadfile']['type']=='image/gif' ||
        $_FILES['uploadfile']['type']=='image/bmp' 
        )) // if file does not equal these types, kill it
        {
        echo  $_FILES['uploadfile']['type'] . " is not an acceptable format.";
        die();
        }

        if ($_FILES["uploadfile"]["size"] > 20000000)
            {
                echo "File too big. Max 20mb";
                die();
            }

        if ($_FILES["uploadfile"]["error"] > 0)
            {
            echo "Return Code: " . $_FILES["uploadfile"]["error"] . "<br>";
            }
          else
            {
                $new_file_name = $newname.".".$extension;
                $path = "uploads/".$new_file_name;
                move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$path);
                echo json_encode(array(
                    "success" => true,
                    "imagepath" => $path,
                    "filetype" => $_FILES["uploadfile"]["type"],
                    "new_file_name" => $newname,
                    "fileName" => $_FILES["uploadfile"]["name"],
                    "fileTmp" => $_FILES["uploadfile"]["tmp_name"],                     
                ));
            }
 ?>
Run Code Online (Sandbox Code Playgroud)

Ili*_*sev 5

去这样的事情:

$year = date("Y");   
$month = date("m");   
$filename = "../".$year;   
$filename2 = "../".$year."/".$month;

if(file_exists($filename)){
    if(file_exists($filename2)==false){
        mkdir($filename2,0777);
    }
}else{
    mkdir($filename,0777);
}
Run Code Online (Sandbox Code Playgroud)

您必须根据您拥有的目录结构调整此代码。它向您展示了检查文件或目录是否存在的基本思想,如果不存在,那么它将为您创建。

编辑 1:

根据您的需要调整您的代码,应该是这样的(未测试):

$path = "uploads/";

$year_folder = $path . date("Y");
$month_folder = $year_folder . '/' . date("m");

!file_exists($year_folder) && mkdir($year_folder , 0777);
!file_exists($month_folder) && mkdir($month_folder, 0777);

$path = $month_folder . '/' . $new_file_name;
Run Code Online (Sandbox Code Playgroud)

注意:把它放在正上方

move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$path);
Run Code Online (Sandbox Code Playgroud)