我在服务器上有一个视频文件夹,它的权限设置为755。问题是:当有人试图上传视频文件时,因为权限错误,无法将其上传到该文件夹中。
如果我将权限更改为777,则可以上传视频。但出于安全原因,我不想允许文件夹权限设置为777。
在上传视频时,是否有一种PHP的方式可以临时更改权限为777?
如果我将权限更改为777,则可以上传视频。但出于安全原因,我不想允许文件夹权限设置为777。
在上传视频时,是否有一种PHP的方式可以临时更改权限为777?
0777
吗? - AAGD有一种方法(PHP提供chmod
函数),但由于PHP不是文件夹的所有者,您将无法更改权限。我认为您正在解决错误的问题。将Web服务器和PHP添加到同一组并将该文件夹设置为775。
您需要初始化上传的配置,类似这样:
$config['remove_spaces'] = FALSE;
$config['upload_path'] = $path;
$this->upload->initialize($config);
$this->load->library('upload', $config);
警告:下面的脚本更改的文件权限无法撤销,请极度谨慎操作。
重要提示:此代码仅应在使用后立即记得删除时使用。与上述相同,使用它可能会使您的网站处于不安全状态。
//replace dirname(__FILE__) with desired folder.
file_fix_directory(dirname(__FILE__));
function file_fix_directory($dir, $nomask = array('.', '..')) {
if (is_dir($dir)) {
// Try to make each directory world writable.
if (@chmod($dir, 0777)) {
echo "<p>Made writable: " . $dir . "</p>";
}
}
if (is_dir($dir) && $handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $nomask) && $file[0] != '.') {
if (is_dir("$dir/$file")) {
// Recurse into subdirectories
file_fix_directory("$dir/$file", $nomask);
}
else {
$filename = "$dir/$file";
// Try to make each file world writable.
if (@chmod($filename, 0666)) {
echo "<p>Made writable: " . $filename . "</p>";
}
}
}
}
closedir($handle);
}
}
或者你可以使用终端来完成这个操作
chmod -R 755 public_html/test