基本上,该方法每次都返回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
非常感谢。
答案 0 :(得分:0)
这似乎不寻常,但您可能没有'C:\ Windows \ Temp'的权限。或者您的服务器可能没有权限。有两种方法可以解决这个问题:
将php.ini文件中的“upload_tmp_dir”设置更改为您或服务器有权访问的目录
查找Temp目录并更改其权限,方法与上传目录相同。
答案 1 :(得分:0)
所以我终于找到了真正的问题。我试图上传到的文件夹是由我自己的用户创建的,这意味着它不属于IIS(This文章对确定它非常有帮助。)
因此,我必须将文件夹的所有者更改为IIS_IUSRS,然后执行此操作,PHP脚本才能正常工作。
有关更改文件夹所有者的详细信息,请参阅前面提到的文章。