我在一个类别中上传多个图片,我想将每组图片存储在我的'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"]);
答案 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'];
}
?>