PHP文件上传错误

时间:2012-06-15 07:25:50

标签: 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'
}

问题

  

警告: 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 \ tmp \ php5E.tmp'移至'上传 C:\ xampp \ htdocs \ test \ include \ pages \ editor \ ged.php 中的/image.jpg' 66

     

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

我添加了文件存在检查并且它已通过,证明该文件存在。我相信问题出在我在此处指定的PHP代码中。

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

如果这个线程是一个克隆,但是所有或任何以前带有类似名称的线程都提供了对我没有用的解决方案(在我的场景中),请道歉。

非常感谢任何帮助或建议。我哪里错了?这怎么可以纠正?

3 个答案:

答案 0 :(得分:2)

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

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

...但PHP可能正在寻找,例如这样:

C:\xampp\htdocs\test\upload

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

抱歉我的英文; o) 包含文件出错。但如果在serv.php中包含ged.php,则目录“upload”必须与文件serv.php位于同一目录中。

htdocs/.../ -
   upload - dir
   serv.php - file
   ... other files and directories