Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:mkdir():文件存在_Php - Fatal编程技术网

Php 警告:mkdir():文件存在

Php 警告:mkdir():文件存在,php,Php,文件传输到我的上传文件夹工作正常,但我在mkdir中有一个警告。它说文件存在,但图片和文件夹生成自己的名称。我不知道是什么警告在起作用 有人能帮我吗 include('connect.php'); $dir=substr(uniqid(),-7); // Uniqid for subdirectory $path = "uploads/$dir/"; // uploads/subdirectory/ // Make directory $valid_formats = array("jp

文件传输到我的上传文件夹工作正常,但我在mkdir中有一个警告。它说文件存在,但图片和文件夹生成自己的名称。我不知道是什么警告在起作用

有人能帮我吗

include('connect.php');

$dir=substr(uniqid(),-7); // Uniqid for subdirectory

$path = "uploads/$dir/"; // uploads/subdirectory/  // Make directory

$valid_formats = array("jpg", "png", "jpeg", "kml");

$max_file_size = 2097152;

$count = 0;


// Loop $_FILES to execute all files

 if(!empty($_FILES)){
foreach($_FILES['files']['name'] as $f => $name) {

    if ($_FILES['files']['error'][$f] == 4) {
        continue; // Skip file if any error found
    }  

    if ($_FILES['files']['error'][$f] == 0) {              
        if ($_FILES['files']['size'][$f] > $max_file_size) {
            $message[] = "$name is too large!.";
            continue; // Skip large files
        }

        elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
            $message[] = "$name is not a valid format";
            continue; // Skip invalid file formats
        }

        else{ // No error found! Move uploaded files 
            mkdir($path, 0700);
            $ext = pathinfo($_FILES['files']['name'][$f], PATHINFO_EXTENSION);
            $uniq_name = substr(uniqid(),-5) . '.' .$ext;
            $dest = $path . $uniq_name;

            if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $dest)){

           $qry = "INSERT INTO files (code, name, path, type) VALUES ('$dir','$uniq_name','$dest','$ext')" ;

            $result = mysqli_query($dbc, $qry);
            if ( false===$result ) {
            $sql_error .= 'Error in the query '.$qry.'  Error Desc :'.mysqli_error($dbc).'<br /><br />' ;
                }
            }

        }

    }       
}}
include('connect.php');
$dir=substr(uniqid(),-7);//子目录的Uniqid
$path=“uploads/$dir/”;//上载/子目录///生成目录
$valid_formats=数组(“jpg”、“png”、“jpeg”、“kml”);
$max_file_size=2097152;
$count=0;
//循环$\u文件以执行所有文件
如果(!空($\u文件)){
foreach($_FILES['FILES']['name']作为$f=>$name){
如果($_FILES['FILES']['error'][$f]==4){
继续;//如果发现任何错误,则跳过文件
}  
如果($_FILES['FILES']['error'][$f]==0){
如果($\u文件['FILES']['size'][$f]>$max\u文件大小){
$message[]=“$name太大!”;
继续;//跳过大文件
}
elseif(!in_数组(pathinfo($name,pathinfo_扩展名),$valid_格式)){
$message[]=“$name不是有效的格式”;
继续;//跳过无效的文件格式
}
else{//未找到错误!移动上载的文件
mkdir($path,0700);
$ext=pathinfo($\u FILES['FILES']['name'][$f],pathinfo\u扩展名);
$uniq_name=substr(uniqid(),-5)。'.$ext;
$dest=$path.$uniq\u name;
如果(移动上传的文件($文件[“文件”][“tmp文件名”][$f],$dest)){
$qry=“在文件(代码、名称、路径、类型)中插入值('$dir'、'$uniq_名称'、'$dest'、'$ext')”;
$result=mysqli_查询($dbc,$qry);
if(false==$result){
$sql_error.='error in the query'$qry.'error Desc:'.mysqli_error($dbc)。'

; } } } } }}
警告非常清楚,您正在创建已存在的目录。所以,把它改成

if (!file_exists($path)) {
    mkdir($path, 0700);
}
使用PHP的
is_dir($path_to_dir)
检查以前是否存在目录


我使用了if(!file_exists($path)){mkdir($path,0700);}但是它只上传了一张图片,即使我上传了多张。先生,我该怎么办?对不起我的语法。这不是我的第一语言。必须将文件夹的路径与文件名分开@user3199128这在unix系统上是有问题的,因为所有内容都是文件,甚至是目录。如果存在同名文件,则无法添加所述目录。因此,仅仅检查“文件”是否是目录是不够的。相反,您应该检查
如果(!file_存在($path))
@JacobThomason如果您有评论,您将如何创建与相邻文件同名的目录?在手动检查任何预先存在的目录(但不是文件)后,是否有办法强制执行mkdir()?