HTML
<form enctype="multipart/form-data" id="SubmitForm" method="post" action="serv.php">
<input type="file" name="IMG" size="chars">
<input type="Submit" value="SAVE">
</form>
PHP
$target = 'upload/';
$target = $target . basename($_FILES['IMG']['name']);
if (move_uploaded_file($_FILES['IMG']['tmp_name'], $target)) { //line 66
echo 'File uploaded successfully';
} else {
echo 'Sorry, there was a problem uploading file'
}
问题
Warning: move_uploaded_file(upload/image.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\xampp\htdocs\test\include\pages\editor\ged.php on line 66
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\xampp\tmp\php5E.tmp' to 'upload/image.jpg' in C:\xampp\htdocs\test\include\pages\editor\ged.php on line 66
Sorry, there was a problem uploading file
我添加了文件存在检查并且它通过了,证明文件存在。我相信问题出在我在这里指定的 PHP 代码中的某个地方。
此外,我在早期的脚本中使用了类似的代码并且它有效。我预计这不会有什么不同。我开始认为问题与如何处理临时文件有关?我不知道,这就是我来这里的原因。
如果该线程是一个克隆,但所有或任何以前的具有相似名称的线程提供的解决方案(在我的场景中)并没有被证明对我有用,我们深表歉意。
非常感谢任何帮助或建议。我哪里错了?如何纠正这个问题?
最佳答案
显然,我们涉及两个 PHP 文件,serv.php
和 ged.php
,听起来它们位于不同的目录中。如果您在此类布局中使用相对路径,则默认情况下该路径将被解释为相对于主脚本位置,即 serv.php
。所以你想要这个:
C:\xampp\htdocs\test\include\pages\editor\upload
...但 PHP 可能正在寻找例如这个:
C:\xampp\htdocs\test\upload
最简单的解决方法是使用绝对路径。
关于PHP 文件上传错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046329/