PHP - 创建一个文件夹并在其中放入一个文件

时间:2017-11-15 19:00:29

标签: php

我需要将文件放在以当前日期(Ex : folderbefore/2017-11-15/mynewfile.sql)命名的文件夹中。

我试过了:

  • 在服务器中将 folderbefore 更改为777(我知道它不好,但我尝试了它,无论如何它都不起作用)
  • 将www-data添加到 folderbefore
  • 的所有者组
  • 在创建文件夹之前将umask设置为0:

    $old = umask(0);
    $directory_was_created = mkdir($path, 0777);
    umask($old);
    
  • 我尝试在更改权限后添加chmod

    $old = umask(0);
    $directory_was_created = mkdir($path, 0777);
    chmod($path, 0777);
    umask($old);
    

我总是得到一个拥有775权限的文件夹,没有权利在这个新创建的文件夹中写入(尝试使用file_put_content,他给了我FALSE并且fopen是谁抛出了错误)。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

好的,我在发布问题后立即发现了问题。

我正在使用流浪汉机器上的测试服务器。为了让我的计算机能够访问 folderbefore ,我需要在我的Vagrantfile中添加它并重启机器:

config.vm.synced_folder "path/to/folderbefore", "path/to/folderbefore/on/my/computer", id: "unique-id-for-this-folder",
owner: "vagrant",
group: "vagrant",
mount_options: ["dmode=777,fmode=777"]

答案 1 :(得分:0)

$directory_was_created = mkdir($path, 0777);

需要

$directory_was_created = mkdir($path, 0777, true);

如果要在新创建的目录中创建嵌套目录