PHP/IIS copy()/move_uploaded_file() 无法打开流:权限被拒绝警告

PHP/IIS copy()/move_uploaded_file() failed to open stream: Permission denied Warning

我是 Web 开发的新手,目前 运行 遇到一个我无法解决的错误。

我在输入“http://localhost/index.html”和 select 要上传的示例文件后使用 IIS 测试我的 php,它生成以下警告:

Warning: move_uploaded_file(upload/Angela_Nie_resume_technical - EditedMW.doc): failed to open stream: Permission denied in C:\inetpub\wwwroot\test.php on line 26
Warning: move_uploaded_file(): Unable to move 'C:\Windows\Temp\php74F2.tmp' to 'upload/Angela_Nie_resume_technical - EditedMW.doc' in C:\inetpub\wwwroot\test.php on line 26

下面是与移动文件相关的代码。

$target_dir = "upload/"; 
$target_file = $target_dir . basename( $_FILES["uploaded"]["name"]) ; 
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_file))  {
    echo "The file has been uploaded"; 
}  
else { 
    echo "Sorry, there was a problem uploading file."; 
}

我正在使用 Windows 8.1 并将 IIS 用于 运行 localhost。预先感谢您帮助我!!

这意味着 运行 apache 服务器的用户没有 upload/ 目录的写权限。可以右键文件夹,设置写给所有人的权限。

更新

可能是因为您的PHP处于安全模式并且没有执行将一个文件移动到另一个等命令].检查 php.ini 中的 safe_modesafe_mode_exec_dir 并用它们进行试验。

在我的情况下,IUSR 帐户需要目标目录中的权限。不是 ISS_IUSR 帐户,只是 IUSR 帐户。