如何禁用php警告mk.dir()

时间:2014-04-28 11:40:06

标签: php

是关于这个脚本的: 上传文件时,首先检查目录“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 
?>

3 个答案:

答案 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);