Проблема с move_uploaded_file

Статус
В этой теме нельзя размещать новые ответы.

1Dreamweaver1

Профессор
Регистрация
4 Янв 2008
Сообщения
417
Реакции
45
Не загружается фаил на сервер. Ошибок не выдает. Помогите резобраться.

if(isset($_POST['add'])) {
$query = "INSERT INTO lines(name) VALUES('".$_POST['lines']."')";
mysql_query($query);

$filename = mysql_insert_id();
echo $_FILES['icon']['tmp_name']."<br />";
echo $filename."<br />";
print_r($_FILES);
if (move_uploaded_file($_FILES['icon']['tmp_name'], $uploadair.$filename)) {
echo "File was successfully uploaded.\n";
} else {
echo "There was an error!\n";
}

***
<form enctype="multipart/form-data" method="post">
Image: <input name="icon" type="file">

<input type="submit" name="add" value="Add!">
 
Телепаты не выдерживаю таких вопросов и мрут как мухи-дрозофилы.
print_r($_FILES) что-то показывает?
$uploadair определена?
откуда берётся $_POST['lines']?
в error_log что-то пишется?
загружаемый файл не привышает лимит по объёму?
 
$uploadair определена
Лимит пока не установлен

$_POST['lines'] - $query = "INSERT INTO lines(name) VALUES('".$_POST['lines']."')";


Код:
Name:<input type="text" name="line">
Image:<input name="icon" type="file">

Работает так: В форме есть 2 inputa.
В одном вводится название компании, другой upload картинки. После нажатия кнопки ADD, данные добавляются в таблицу. Имя картинки = id название компании.


print_r($_FILES) показывает:
Array ( [icon] => Array ( [name] => test.jpg [type] => image/pjpeg [tmp_name] => C:\WebServer\upload\php1D83.tmp [error] => 0 [size] => 2464 ) )
 
Может всё-таки $uploaddir, а не $uploadair?
Включи вывод или логирование ошибок и увидишь в чём затык.
 
Вот еще вдогонку получение ошибки. Где взял, увы, не помню. Но в мануале, похоже, нет.
Код:
switch($_FILES['myfile']['error'])
{
case '1':$error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';    break;
case '2':$error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';break;
case '3':$error = 'The uploaded file was only partially uploaded';break;
case '4':$error = 'No file was uploaded.';break;
case '6':$error = 'Missing a temporary folder';break;
case '7':$error = 'Failed to write file to disk';break;
case '8':$error = 'File upload stopped by extension';break;
case '999':    default:$error = 'No error code avaiable';
}

Ошибку удобно писать в лог. Хоть какая-то замена тому, что функции пхп не кидают исключений.
 
а разрешенный размер загружаемых файлов проверял?
 
Вот еще вдогонку получение ошибки. Где взял, увы, не помню. Но в мануале, похоже, нет.
Код:
switch($_FILES['myfile']['error'])
{
case '1':$error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';    break;
case '2':$error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';break;
case '3':$error = 'The uploaded file was only partially uploaded';break;
case '4':$error = 'No file was uploaded.';break;
case '6':$error = 'Missing a temporary folder';break;
case '7':$error = 'Failed to write file to disk';break;
case '8':$error = 'File upload stopped by extension';break;
case '999':    default:$error = 'No error code avaiable';
}

Ошибку удобно писать в лог. Хоть какая-то замена тому, что функции пхп не кидают исключений.

Не знаю что за ошибки ты привел, но в официальном мануале по PHP описаны только эти ошибки:
PHP:
UPLOAD_ERR_OK
Value: 0; There is no error, the file uploaded with success. 

UPLOAD_ERR_INI_SIZE
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

UPLOAD_ERR_FORM_SIZE
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form. 

UPLOAD_ERR_PARTIAL
Value: 3; The uploaded file was only partially uploaded. 

UPLOAD_ERR_NO_FILE
Value: 4; No file was uploaded.
Для просмотра ссылки Войди или Зарегистрируйся
 
uNknownMark

Не помню я откуда это взял, но только что глянул код ZendFramework классы, которые недавно вышли из инкубатора. Там используются такие же коды ошибок.

Смотрите класс Zend_Validate_File_Upload. Кидать сюда его содержимое нет смысла.
 
Проверь папку на запись куда сохраняешь фаил :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху