【问题标题】:Why can't I download files uploaded with PHP?为什么我不能下载用 PHP 上传的文件?
【发布时间】:2011-09-13 04:30:07
【问题描述】:

我已经使用 PHP 创建了一个自定义 CMS,它会将文件上传到具有 777 权限的目录。当文件被上传时,它们被赋予 600,而 apache 是所有者,因此我不能作为主要的 FTP 用户通过 FTP 下载它们。

有人有什么想法吗?我已尝试更改权限,但由于所有者是 apache,我没有权限。

【问题讨论】:

  • 您介意发布相关的上传代码吗?
  • 尝试在上传脚本中 chmod 和/或 chown 您的文件。
  • 您可以在上传时更改文件的权限。由于该操作将以apache用户身份运行,因此将被允许。
  • 您可以在目录本身上设置粘性位,这将强制组权限应用于在其中创建的新文件。 chmod g+s /your/upload/dir.
  • 感谢 Marc B,这很奏效。我的 VPS 提供商不允许 SSH,所以我在设置权限时遇到了麻烦。一小行 PHP 解决了我浪费的星期六晚上。

标签: php apache file-upload file-permissions chmod


【解决方案1】:

您不能对文件进行 chmod,但 'apache' 可以:上传移动文件后,在同一脚本中更改权限。由于它是由 apache 运行的,所以允许这样做。

http://php.net/manual/en/function.chmod.php

【讨论】:

    【解决方案2】:

    对于上传文件,请务必注意,上传文件后未明确设置权限是一种不好的做法。

    我会使用 Nanne 提供的链接并开始将其添加到您的上传脚本中。这将确保文件在您需要的每种情况下都获得适当的权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2016-05-11
      • 2012-06-21
      • 2016-06-22
      • 2011-11-27
      • 2011-07-09
      相关资源
      最近更新 更多