如何在使用move_uploaded_file()时在PHP中创建目标(文件夹)?

15 php upload file-upload

我想用PHP上传文件,我使用move_uplload_files将它们复制到我想要的目标文件夹,一切正常:

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'))
die("success");
else
die("error");
Run Code Online (Sandbox Code Playgroud)

但是当我试着这个

$rand =  chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122));
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand))
die("success");
else
die("error");
Run Code Online (Sandbox Code Playgroud)

我会得到错误,看起来move_uploaded_files 无法创建文件夹.我怎样才能做到这一点 ?

基本上我正在寻找一种方法,就像file_put_contents()创建路径一样,如果不存在的话.

ale*_*lex 32

使用mkdir().

如果需要创建多个文件夹,例如通过传递a/b/c,请将第三个参数设置为TRUE.

你可以测试它是否已经存在,如果不是这样的话就添加....

$path = 'abc';

if ( ! is_dir($path)) {
    mkdir($path);
}
Run Code Online (Sandbox Code Playgroud)

  • @alex:第三个参数+1!我不知道. (3认同)
  • `@mkdir()`会抑制错误,或者最好的方法是`file_exists` (2认同)

Vik*_*ash 6

使用这样的东西:

$folder = "uploads"; 
if(!is_dir($folder)) mkdir($folder);
Run Code Online (Sandbox Code Playgroud)

is_dir() 检查文件夹是否存在.