2011-11-06 33 views
0

我有以下脚本显示我在move_uploaded_file警告。错误在移动文件在php

警告:move_uploaded_file(/home/oxfordmo/public_html/ticket/attachement/1320610829.docx)function.move上传文件]:未能打开流:在/ home/oxfordmo没有这样的文件或目录/public_html/ticket/open.php on line 53

Warning:move_uploaded_file()[function.move-uploaded-file]:无法将'/ tmp/phpLHjtMJ'移动到'/ home/oxfordmo/public_html/ticket /在/home/oxfordmo/public_html/ticket/open.php attachement/1320610829.docx”上线53

if ($file != "") { 
    $type = $_FILES["file"]["type"]; 
    $ext = pathinfo($_FILES["file"]['name'], PATHINFO_EXTENSION); 
    if ($ext != "doc" || $ext != "pdf" || $ext != "docx") { 
     if ($_FILES["file"]["size"] <= 1024 * 1024) { 
      if (file_exists("$root/ticket/attachement/$time.$ext")) { 
       unlink("$root/ticket/attachement/$time.$ext"); 
      } elseif (!move_uploaded_file($_FILES["file"]['tmp_name'], "$root/ticket/attachement/$time.$ext")) { 
       $errorfile = "Unable to move file to destination folder."; 
      } 
      $file = $time . '.' . $ext; 
      $query = mysql_query("UPDATE tkt_container SET attachment='" . $file . "' WHERE ticket_id='" . $ticket_id . "'") or die(mysql_error()); 
     } else { 
      $errorfile = "File not saved. Size limit Exceed! "; 
     } 
    } else { 
     $errorfile = "File not saved. Invalid Format!"; 
    } 
} 

回答

2

你可以改变这一行:

  } elseif (!move_uploaded_file($_FILES["file"]['tmp_name'], "$root/ticket/attachement/$time.$ext")) { 

  } elseif (!file_exists($_FILES["file"]['tmp_name']) || !move_uploaded_file($_FILES["file"]['tmp_name'], "$root/ticket/attachement/$time.$ext")) { 
以这种方式,你会检查文件是否确实存在,然后再移动它

一个好的做法是检查“错误

'在文件上的值之前对上传的文件进行操作

+0

另外,在'$ errorfile =“无法将文件移动到目标文件夹之后。”;'语句,以下'$ file = ..'&'$ query =。仍然执行即使有错误,应该把它们包含在else语句中 – Ben

+0

最好的方法是检查错误变量,或者至少将'file_exists($ _ FILES [“file”] ['tmp_name'])''添加到'如果($文件!= “”)' – Fabrizio