【问题标题】:PHP/IIS copy()/move_uploaded_file() failed to open stream: Permission denied WarningPHP/IIS copy()/move_uploaded_file() 无法打开流:权限被拒绝警告
【发布时间】:2015-05-21 13:48:52
【问题描述】:

我对 Web 开发比较陌生,目前遇到了一个我无法解决的错误。

我在输入“http://localhost/index.html”并选择要上传的示例文件后使用 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。提前感谢您帮助我!

【问题讨论】:

    标签: php iis file-upload warnings file-permissions


    【解决方案1】:

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

    【讨论】:

    • 工作就像一个魅力。顺便说一句,你是怎么知道的?如何找到正确的 IIS 用户来执行 php 代码?
    • 不幸的是,这是我的反复试验。我不知道如何查找这些信息。
    【解决方案2】:

    这意味着运行 apache 服务器的用户没有upload/ 目录的写权限。您可以右键单击该文件夹并设置向所有人写入的权限。

    更新

    这可能是因为您的 PHP 处于安全模式,并且不执行诸如将一个文件移动到另一个文件之类的命令。检查您的 php.ini 中的 safe_mode 和 safe_mode_exec_dir 并进行试验。

    【讨论】:

    • 感谢您的回复!我已经为程序可能触及的每个可能的文件夹都这样做了,但它仍然无法正常工作。
    猜你喜欢
    • 1970-01-01
    • 2012-07-07
    • 2015-11-02
    • 2023-03-18
    • 2013-06-19
    • 2014-01-02
    • 2014-10-03
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多