mkdir不起作用的递归目录

时间:2014-01-05 21:04:50

标签: php mkdir directory uploading

我在一个类别中上传多个图片,我想将每组图片存储在我的'images /'目录中的一个唯一目录中,如下所示:

'图像/ unique_category / image1.jpg'

我有以下代码,但它没有创建目录。我怀疑它与将递归参数设置为'true'有关,我相信我已经做过了。我是否错误地使用了mkdir函数?

谢谢!

$unique_directory = "../images/".$_POST['item_name'];
if (is_dir($unique_directory)
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  $unique_directory."/".$_FILES["file"]["name"]);
  echo "Stored in: " . $unique_directory."/".$_FILES["file"]["name"];
  }
else
  {
  mkdir($unique_directory, 0777, true);
  move_uploaded_file($_FILES["file"]["tmp_name"],
  $unique_directory."/".$_FILES["file"]["name"]);

1 个答案:

答案 0 :(得分:1)

在这里,试一试。我在我的(托管)服务器上测试它,它的工作原理。然而,我通过将文件放在其根目录中对其进行了测试,并使用images而不是../images作为$unique_directory变量。

除了其他函数之外,我还使用了chmod命令,因为另一种方法不起作用。

N.B。:如果可能,请尝试将0777更改为0755,因为使用0777不是最安全的设置。

<?php
$filename = $_POST['item_name'];
$unique_directory = "../images";

if (!is_dir($unique_directory . '/' . $filename)){

    mkdir($unique_directory . "/" . $filename);

    chmod("$unique_directory" . "/" .$filename, 0777);
}

if (is_dir($unique_directory))
  {
  move_uploaded_file($_FILES['file']['tmp_name'], $unique_directory . "/" . $filename . "/" . $_FILES['file']['name']);
  echo "1) Stored in: " . $unique_directory . "/" . $filename . "/" . $_FILES['file']['name'];
  }

else
  {
  move_uploaded_file($_FILES['file']['tmp_name'], $unique_directory . "/" . $filename . "/" . $_FILES['file']['name']);
  echo "2) Stored in: " . $unique_directory . "/" . $filename . "/" . $_FILES['file']['name'];
}
?>