При сохранении файла, который когда он не существует, создается вопрос с правами доступа к файлу, который сначала создается как новый файл.
Теперь все идет хорошо, и сохраненный файл имеет режим 644
.
Что мне нужно изменить здесь, чтобы файлы сохранялись как режим 777
?
Спасибо тысячу за любые подсказки, подсказки или ответы. Код, который, по моему мнению, имеет значение здесь, я включил:
/* write to file */ self::writeFileContent($path, $value); /* Write content to file * @param string $file Save content to wich file * @param string $content String that needs to be written to the file * @return bool */ private function writeFileContent($file, $content){ $fp = fopen($file, 'w'); fwrite($fp, $content); fclose($fp); return true; }
PHP имеет встроенную функцию bool chmod(string $filename, int $mode )
private function writeFileContent($file, $content){ $fp = fopen($file, 'w'); fwrite($fp, $content); fclose($fp); chmod($file, 0777); //changed to add the zero return true; }
Вам просто нужно вручную установить нужные разрешения с помощью chmod()
:
private function writeFileContent($file, $content){ $fp = fopen($file, 'w'); fwrite($fp, $content); fclose($fp); // Set perms with chmod() chmod($file, 0777); return true; }
Если вы хотите изменить разрешения существующего файла, используйте chmod (режим изменения):
$itWorked = chmod ("/yourdir/yourfile", 0777);
Если вы хотите, чтобы все новые файлы имели определенные разрешения, вам нужно изучить настройку вашего umode
. Это параметр процесса, который применяет стандартную модификацию по умолчанию.
Это субтрактивный. Под этим я подразумеваю, что umode
из 022
предоставит вам разрешение по умолчанию 755
( 777 - 022 = 755
).
Но вы должны очень тщательно подумать обо всех этих вариантах. Файлы, созданные в этом режиме, полностью не защищены от изменений.