是关于这个脚本的: 上传文件时,首先检查目录“uploads”是否存在,如果不存在:创建目录。 当目录已经存在并上传文件时,会出现警告:
警告:mkdir()[function.mkdir]:文件存在于....
如何禁用此警告?
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// array with allowed extensions
$allowedExts = array("gif", "jpeg", "jpg", "png", "zip", "html", "htm", "js", "css", "less", "txt", "php");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
// create map "uploads" if doesn't exists
$root = '/uploads/';
if (!is_dir($root)) {
mkdir("uploads/", 0777);
echo 'The map uploads is created!';
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "text/html")
|| ($_FILES["file"]["type"] == "text/javascript")
|| ($_FILES["file"]["type"] == "text/css")
|| ($_FILES["file"]["type"] == "text/less")
|| ($_FILES["file"]["type"] == "application/zip")
|| ($_FILES["file"]["type"] == "text/plain"))
&& ($_FILES["file"]["size"] < 20000000) // 2 Mb max
&& in_array($extension, $allowedExts))
{
// echo's if upload is succeeded
echo 'Status: upload succesvol!<br />';
echo 'Bestand: ' . $_FILES["file"]["name"] . '<br />';
echo 'Type: ' . $_FILES["file"]["type"] . '<br />';
echo 'Grootte: ' . ($_FILES["file"]["size"] / 1024) . ' kB<br />';
$newfilename = uniqid().".".end(explode(".",$_FILES["file"]["name"]));
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $newfilename);
// het pad naar het bestand dat geupload is; ervan uitgaande dat de map uploads in de root staat
echo 'Url: ' . '<b>http://www.jouwwebsite.nl/uploads/' . $newfilename.'</b>';
echo '<br /><br />';
}
else
{
// echo if file extension is not allowed
echo "Niet toegestaan bestand";
}
}
else {
}
}
} // end request_method POST
?>
答案 0 :(得分:1)
您可以在任何函数前放置@符号以禁止显示错误消息,警告或通知。
@mkdir('/path/to/dir');
但是,如果你输入一个if语句,只有在需要时才使用该函数会好得多。
答案 1 :(得分:1)
$ root =&#39; / uploads /&#39 ;;是一个绝对路径,并且以下条件可能每次都返回false。然后它尝试创建一个&#34;上传&#34;使用相对路径的文件夹,该路径已在上一次运行的脚本中创建,因此出现错误。
答案 2 :(得分:0)
在file_exists($root)
条件中使用is_dir
代替if
。
if(!file_exists($root))
mkdir("uploads/", 0777);