可能重复:
PHP 上传脚本 - 自动创建文件夹
我有一个基于表单创建文件夹的 PHP 脚本。我想知道如果它已经存在,是否有办法不创建和替换该文件夹?
<?php
mkdir("QuickLinks/$_POST[contractno]");
?>
可能重复:
PHP 上传脚本 - 自动创建文件夹
我有一个基于表单创建文件夹的 PHP 脚本。我想知道如果它已经存在,是否有办法不创建和替换该文件夹?
<?php
mkdir("QuickLinks/$_POST[contractno]");
?>
您可以使用is_dir:
<?php
$path = "QuickLinks/$_POST[contractno]";
if(!is_dir($path)){
mkdir($path);
}
?>
一般来说:
$dirname = "whatever";
if (!is_dir($dirname)) {
mkdir($dirname);
}
特别是:在执行涉及用户输入的文件系统(或任何其他类型的敏感)操作时要非常小心!当前示例(创建目录)并没有留下太多开放的攻击面,但验证输入永远不会受到伤害。
使用is_dir检查文件夹是否存在
$dir = "/my/path/to/dir";
if (!is_dir($dir)) {
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException(sprintf('Unable to create the %s directory', $dir));
}
}
注意不受控制的输入,很危险!
你可以试试:
<?php
if (!is_dir("QuickLinks/$_POST[contractno]"))
mkdir("QuickLinks/$_POST[contractno]");
?>
使用 PHP 的 is_dir 函数检查是否已经存在目录,只有在没有目录时才调用 mkdir 函数。
在使用 POST 变量创建目录之前,请在此处执行一些验证规则(正则表达式)!
if(!file_exists("QuickLinks/$_POST[contractno]"))
mkdir("QuickLinks/$_POST[contractno]");