2

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'
}

问题

警告: move_uploaded_file(upload/image.jpg) [function.move-uploaded-file]:无法打开流:C:\xampp\htdocs\test\include\pages\editor\ged.php中没有这样的文件或目录第66

警告: move_uploaded_file() [function.move-uploaded-file]:无法在C:\xampp\htdocs\test\include\中将 'C:\xampp\tmp\php5E.tmp' 移动到 'upload/image.jpg' pages\editor\ged.php在第66行

抱歉,上传文件时出现问题

我添加了一个文件存在检查,它通过了,证明文件存在。我相信问题出在我在这里指定的 PHP 代码中。

此外,我在早期的脚本中使用了类似的代码并且它有效。我预计这不会有什么不同。我开始认为问题与临时文件的处理方式有关?我不知道,这就是我在这里的原因。

抱歉,如果此线程是克隆,但所有或任何以前具有相似名称的线程提供的解决方案并未证明对我有用(在我的场景中)。

非常感谢任何帮助或建议。我哪里错了?如何纠正这种情况?

4

3 回答 3

2

显然,我们有两个 PHP 文件,serv.phpged.php,听起来它们位于不同的目录中。如果您在此类布局中使用相对路径,则默认情况下该路径被解释为相对于主脚本位置,即serv.php. 所以你想要这个:

C:\xampp\htdocs\test\include\pages\editor\upload

...但是 PHP 可能正在寻找例如这个:

C:\xampp\htdocs\test\upload

最简单的解决方法是使用绝对路径。

于 2012-06-15T07:36:46.693 回答
1

对不起我的英语;o) 包含文件中的错误。但如果您在 serv.php 中包含 ged.php,则“upload”目录必须与文件 serv.php 位于同一目录中。

htdocs/.../ -
   upload - dir
   serv.php - file
   ... other files and directories
于 2012-06-15T07:42:13.163 回答
1

$target上传指的是C:\xampp\htdocs\test\include\pages\editor\upload\。听起来这个文件夹不存在或没有写权限。

于 2012-06-15T07:31:13.217 回答