一直试图找出为什么我的$temp
文件不会放在$un
目录中。目录结构已创建,但临时文件未移动到那里。要验证是否正在创建临时文件 - 如果我删除mkdir()
,则会将临时文件添加到uploads
folder
。为什么不在子目录中创建文件?
uploads/subfolder/
$temp = 'uploads/'.mkdir('uploads/'.$un) . md5($_FILES['image']['name']);
if (move_uploaded_file($_FILES['image']['tmp_name'], $temp)) {
// do something here..
}
答案 0 :(得分:3)
当函数mkdir
返回bool值时,此行
$temp = 'uploads/'.mkdir('uploads/'.$un) . md5($_FILES['image']['name']);
评估为
$temp = 'uploads/' . ('1' or '') . 'md5-filename';
您可以看到 - 您的$temp
路径永远不会存储您的$un
子目录。
解决方案可以是:
$temp = 'uploads/' . $un;
$res = mkdir($temp);
// check that folder created successfully
if ($res) {
$temp .= md5($_FILES['image']['name']);
// upload your file
}
答案 1 :(得分:1)
像这样使用,
mkdir('uploads/'.$un);
$temp = "uploads/$un/" . md5($_FILES['image']['name']);