【问题标题】:PHP - Issue with move_uploaded_filePHP - move_uploaded_file 的问题
【发布时间】:2016-09-19 18:40:51
【问题描述】:

我过去曾成功使用过 move_uploaded_file,但是我在使用新服务器时遇到了权限问题,我认为这是我正在测试的新服务器。我创建了一个名为“uploads”的文件夹,以便通过 FTP 将上传内容移至该文件夹。这是显示权限的屏幕截图:

每个人都有读/写访问权限,但是当我上传文件时,我在将文件移动到“上传”目录的行出现错误:

if (move_uploaded_file($_FILES['photo1']['tmp_name'], $upload_directory.$uploadedFile)) {

该文件未移动到“上传”文件夹,查看服务器日志我可以看到如下条目:

php[1344] PHP 警告:move_uploaded_file(uploads/2.jpg):未能打开流:第 206 行 C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\test_upload\index.php 中的权限被拒绝 PHP 警告:move_uploaded_file():无法将“C:\Windows\Temp\php2D93.tmp”移动到 C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\test_upload\index 中的“uploads/2.jpg”。第206行的php

如果所有用户都对“上传”文件夹具有读/写/执行权限,我看不出这怎么可能是权限问题?以下是变量:

$upload_directory='上传/'; $uploadedFile= $_FILES['photo1']['name'];

【问题讨论】:

标签: php file-upload


【解决方案1】:

uploads/2.jpg 似乎是$_FILES['photo1']['tmp_name'],因此应该已上传到服务器的/tmp/ 目录。在大多数系统上,因为/tmp 是一个系统目录,所以它的权限是有限的。

查看您是否可以更改/tmp 上的权限,或者确切地在“上传”之前先将 tmp 上传的文件移动到哪个目录(然后更改 上的权限em>那个目录)。

无论如何,传递给move_uploaded_file() 的文件路径看起来不正确。它需要是一个完整的路径。您看到的服务器错误可能不会在恰好在上传操作发生的同时发生。

【讨论】:

  • 抱歉我的 PHP 错误没有正确粘贴 - 已更新。如您所见,文件已正确上传,例如C:\Windows\Temp\php2D93.tmp,就是无法移动到uploads文件夹。
  • 是的,但是 PHP 需要能够读取源文件:C:\Windows\Temp\php2D93.tmp 所以我会检查运行 PHP 的网络服务器是否有权读取 that 文件夹。
【解决方案2】:

我无法通过 FTP 设置解决此问题。我必须通过登录到 Windows Server 并更改我试图将文件移动到的文件夹上的安全设置来调整设置,以便“用户”具有读/写访问权限。

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2011-07-20
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多