move_uploaded_file错误6 php

Jam*_*mes 1 php file-upload

试图移动上传的文件以便将其保存在目录中,它会失败.我echo ($_FILES['company_logo'] ['error']);用来获取错误号.我唯一能找到错误号的地方是http://www.htmlgoodies.com/beyond/php/article.php/3472561/PHP-Tutorial-Error-Handling.htm.但是,他们的列表最多只能达到4,我得到错误号6.有谁知道这个错误代表什么?这是我的代码:

$allowed_filetypes = array('.jpg','.jpeg','.gif','.bmp','.png'); // These will be the types of file that will pass the validation.
$max_filesize = 524288; // Maximum filesize in BYTES (currently 0.5MB).
$upload_path = '../images/companies/'; // The place the files will be uploaded to (currently a 'files' directory).

if($_FILES['company_logo']['name'] != "") {
    if($row['image'] != ''){
        unlink("../".$row['image']);
    }

    $filename = $_FILES['company_logo']['name']; // Get the name of the file (including file extension).               
    $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename.
    $ext = strtolower($ext);
    // Check if the filetype is allowed, if not DIE and inform the user.
    if(!in_array($ext,$allowed_filetypes))
        die('The file you attempted to upload is not allowed.');

    // Now check the filesize, if it is too large then DIE and inform the user.
    if(filesize($_FILES['company_logo']['tmp_name']) > $max_filesize)
        die('The file you attempted to upload is too large.');

    // Check if we can upload to the specified path, if not DIE and inform the user.
    if(!is_writable($upload_path))
        die('You cannot upload to the specified directory, please CHMOD it to 777.');

      // Upload the file to your specified path.
    $ran = rand();
    $filename = $ran.$ext;
    if(move_uploaded_file($_FILES['company_logo']['tmp_name'],$upload_path.$filename)){  // This is where it fails
           $file = $upload_path.$filename;

           $result = mysql_query("UPDATE Companies SET image = 'images/companies/$filename' WHERE id = '$id';");                                                        

           if($result)
              $_SESSION['message'] .= "<p class='copy' style='color:red;'>Your image upload was successful.</p>"; // It worked.
           else
              $_SESSION['message'] .= "<p class='copy' style='color:red;'>Unable to upload image(s).</p>";
    }else{
           $_SESSION['message'] .= "<p class='copy' style='color:red;'>Unable to upload image(s).</p>";
           echo ($_FILES['company_logo'] ['error']);
            die();
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,如果文件扩展名在允许的文件类型列表中,如果文件超过最大文件大小,以及路径是否可写,我会检查是否正在上载实际文件.所以我不相信这是其中任何一件事,但我不确定.任何帮助,将不胜感激.

dev*_*ler 7

PHP手册知道99,99%的答案.

UPLOAD_ERR_NO_TMP_DIR

价值:6; 缺少临时文件夹.在PHP 4.3.10和PHP 5.0.3中引入.

  • 所以,鉴于这是答案,如何解决它? (2认同)
  • 通过在php.ini中设置正确的可写路径:http://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir (2认同)