Проблема с загрузкой файлов на сервер
Подскажите пожалуйста. Мне необходимо сделать форму загрузки файлов на сервер (на локальном хостинге оно работает нормально, но вот на сервере не хочет). Подскажите пожалуйста в чем именно ошибка.
if(($_FILES["filename"]["size"] < 1024*16*1024) && ($type == "jpg")) { // Проверяем загружен ли файл echo $_FILES["filename"]["tmp_name"]; if(is_uploaded_file($_FILES["filename"]["tmp_name"])) { // Если файл загружен успешно, перемещаем его // из временной директории в конечную move_uploaded_file($_FILES["filename"]["tmp_name"],"kirill/".$_FILES["filename"]["name"]); echo 'все good'; } else { echo("Ошибка загрузки файла"); } } По чему-то оно всегда выводит "Ошибка загрузки файла" (то есть $_FILES["filename"]["tmp_name"] имеет пустое значение, хотя на локальном хостинге все работает). Подскажите пожалуйста в чем проблема. Заранее благодарен всем отозвавшимся. |
Размер файла может слишком большой ?
Не превышает ли размер файла, размеры допустимые в настройках (upload_max_filesize и post_max_size) ? Что выводят эти строчки: echo ini_get('upload_max_filesize'); echo ini_get('post_max_size'); Так же можете заглянуть какой номер ошибки при загрузке: echo $_FILES["filename"]['error']; а в нете уже посмотреть что эта ошибка означает |
if ( isset( $_FILES["filename"] ) && ( $_FILES["filename"]["error"] == 0 ) && ( is_uploaded_file( $_FILES["filename"]["tmp_name"] ) ) ) { $ext = strtolower( pathinfo( $_FILES['filename']['name'], PATHINFO_EXTENSION ) ); if ( ( $ext == "jpg" ) && ( $_FILES["filename"]["size"] < 1024*16*1024 ) ) { move_uploaded_file( $_FILES["filename"]["tmp_name"], "kirill/".$_FILES["filename"]["name"] ); echo 'все good'; } } else { echo("Ошибка загрузки файла"); }Проверяй значение переменной $_FILES["filename"]["error"] номер ошибки укажет тебе проблему, вот тут можно почитать о номерах ошибок http://docs.php.net/manual/ru/featur...oad.errors.php |
Вот что выводит
echo ini_get('upload_max_filesize'); echo ini_get('post_max_size'); echo $_FILES["filename"]['error']; 32M 16M 2 Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме. Но в HTML-форме ничего не указано, да и размер загружаемого файла = 244 КБ |
Значит кто-то его добавляет, ибо ПХП проверяет пришедшие значения в пост... Хотя как ни странно, сам браузер не должен дать заливать файл который превышает размер указанного в форме. Но все же кто-то посылает подобное это в POST раз ПХП говорит об этом.
|
Мне кажется, что просто файл не загружается во временный каталог, я запросил на хостинге содержимое файла php.ini что-бы посмотреть в какой по умолчанию каталог заносятся временные файлы.
Как по мне, то нету либо этого каталога, либо там стоят не корректные права. Короче как ответят, так и будем думать. Просто не может быть ограничение на 240кб =) |
Стандартное рамер загружаемых файлов у apatcha 5 метров. Вот держи там вместе с директорией $uploaddir = 'userfile/';
$uploadfile = $uploaddir . basename($_FILES['foto']['name']); move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile); rename("userfile/".$_FILES['foto']['name'],"userfile/".md5($nomerdela.$_FILES['foto']['name'])); |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 04:01. |