临时文件未放在子目录中

时间:2016-07-24 13:59:20

标签: php

一直试图找出为什么我的$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..
}

2 个答案:

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