为啥我不能下载用 PHP 上传的文件?
Posted
技术标签:
【中文标题】为啥我不能下载用 PHP 上传的文件?【英文标题】: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 解决了我浪费的星期六晚上。
【参考方案1】:
您不能对文件进行 chmod,但 'apache' 可以:上传移动文件后,在同一脚本中更改权限。由于它是由 apache 运行的,所以允许这样做。
http://php.net/manual/en/function.chmod.php
【讨论】:
【参考方案2】:对于上传文件,请务必注意,上传文件后未明确设置权限是一种不好的做法。
我会使用 Nanne 提供的链接并开始将其添加到您的上传脚本中。这将确保文件在您需要的每种情况下都获得适当的权限。
【讨论】:
以上是关于为啥我不能下载用 PHP 上传的文件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我从论坛里下载word、压缩包文件,下下来之后是php文件呢?
下载下来的ueditor编辑器,能直接用asp上传图片和附件吗?里面对应的asp处理文件貌似不能直接用!? 谢~