PHP 文件上传错误

标签 php file input upload xampp

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.phpged.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/

相关文章:

PHP DOMDocument getElementsByTagName 返回不完整的元素?

php - 是否可以索引表的每一列?

javascript - 启用/禁用输入 - knockout

php - 什么设置导致区分大小写的 require_once 路径?

php - 在 PHP 中使用动态变量名调用静态变量

excel - 如何在不解析的情况下使用 vba OpenText

c - 文件描述符表和系统调用

java - Java 如何解析 new File() 中的相对路径?

c - 如何使用 sscanf 解析输入行?

javascript - Rangeslider.js |未捕获的类型错误 : Cannot read property '0' of undefined