move_uploaded_file()返回false

时间:2016-02-25 21:37:56

标签: php

基本上,该方法每次都返回false,我尝试更改tmp文件夹并在/ uploads文件夹中给出PHP写入权限

PHP脚本:

<?php
$uploadfile = $_FILES['userfile']['name'];

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], "uploads/$uploadfile")) {
    echo "Uploaded.\n";
} else {
    echo "Not uploaded.\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>

我如何授予权限:https://gyazo.com/89a706adfefea2a2edf090e7cc11cf66

html文件中的表单:

<form method="POST" action="savepic.php" enctype="multipart/form-data">
    <input class="file" type="file" name="userfile">
    <input type="submit" value="Upload">
    <p>Not available...</p>
</form>

错误日志给了我这两个:

  

PHP警告:move_uploaded_file(uploads / 65 wat.jpg):无法打开流:第5行的C:\ inetpub \ wwwroot \ UPT \ test \ savepic.php中的权限被拒绝

     

PHP警告:move_uploaded_file():无法移动&#39; C:\ Windows \ Temp \ php8F38.tmp&#39;到&#39;上传/ 65 wat.jpg&#39;在第5行的C:\ inetpub \ wwwroot \ UPT \ test \ savepic.php

非常感谢。

2 个答案:

答案 0 :(得分:0)

这似乎不寻常,但您可能没有'C:\ Windows \ Temp'的权限。或者您的服务器可能没有权限。有两种方法可以解决这个问题:

  1. 将php.ini文件中的“upload_tmp_dir”设置更改为您或服务器有权访问的目录

  2. 查找Temp目录并更改其权限,方法与上传目录相同。

答案 1 :(得分:0)

所以我终于找到了真正的问题。我试图上传到的文件夹是由我自己的用户创建的,这意味着它不属于IIS(This文章对确定它非常有帮助。)

因此,我必须将文件夹的所有者更改为IIS_IUSRS,然后执行此操作,PHP脚本才能正常工作。

有关更改文件夹所有者的详细信息,请参阅前面提到的文章。