Ошибка move_uploaded_file 6 php - PullRequest
       2

Ошибка move_uploaded_file 6 php

1 голос
/ 04 января 2012

Попытка переместить загруженный файл таким образом, чтобы он был сохранен в каталоге, не удалась.Я использую 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();
    }
}

Как видите, я проверяю фактический загружаемый файл, есть ли расширение файла в списке разрешенных типов файлов, если файл превышает максимальный размер файлаи является ли путь даже доступным для записи.Так что я не верю, что это что-то из этого, но я не уверен.Любая помощь будет оценена.

Ответы [ 2 ]

6 голосов
/ 04 января 2012

Руководство по PHP знает 99,99% ответов.

UPLOAD_ERR_NO_TMP_DIR

Значение: 6; Отсутствует временная папка. Введено в PHP 4.3.10 и PHP 5.0.3.

1 голос
/ 04 января 2012

Краткий ответ: здесь список всех ошибок загрузки файлов, которые могут произойти.

Ваша ошибка:

Значение: 6;Отсутствует временная папка.Представлено в PHP 4.3.10 и PHP 5.0.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...