【问题标题】:Difficulty Creating New Directory for Upload in PHP难以在 PHP 中创建新的上传目录
【发布时间】:2011-09-29 05:53:26
【问题描述】:

我正在使用 PHP 创建一个目录。创建目录后,它的 chmod 为 777。然后我有一个简单的脚本供用户将文件上传到目录。我遇到的问题是当我运行脚本时目录不会完成文件传输。但是...如果我通过 FTP 手动进入并创建一个新目录并将 777 分配给生成的文件夹,那么脚本工作正常并且文件被传输。我的虚拟主机是否有一些设置限制了这种能力?还是在 PHP 脚本中?这是我创建新目录的代码:

<?php

$thisdir = getcwd(); 
$new_dir = 'test';
$full_dir = $thisdir . "/" . $new_dir;

function chk_dir($full_dir) {
if(is_dir($full_dir)) {
    echo 'the directory already exists';
} else {
    return mkdir($full_dir);
}

}
chk_dir($full_dir);
chmod($full_dir, 0777);
?>

我知道对此必须有一个简单的解释,感谢您查看我的问题。

【问题讨论】:

  • 理论上,如果目录是由 PHP 创建的,那么它将有权写入该目录,因为它拥有所有权。根本不需要设置权限。
  • @Tak 我尝试退出 chmod 调用并将权限设置为“rwxr-xr-x”。此外,文件没有完成上传。
  • 我知道这与我正在使用的新主机有关。我已经在不同的托管平台上测试了相同的脚本,它工作得很好。我应该问他们什么问题?

标签: php directory hosting chmod mkdir


【解决方案1】:

检查您的服务器上是否开启了 Safe_mode

mkdir() 将文件夹创建为所有者,它不是脚本所有者,因此脚本无法将文件上传到该文件夹​​中。虽然打开了安全模式,但 chmod() 不起作用。 文档:http://php.net/manual/en/features.safe-mode.php

尝试在 php 脚本的开头添加此行以检查警告:

ini_set('display_errors', '1');

【讨论】:

  • 非常感谢!我会调查一下,看看是不是这样。
猜你喜欢
  • 2014-11-10
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 2021-05-25
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多