[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с загрузкой больших файлов на сервер
shkarbatov
Подскажите пожалуйста как решить следующую проблему.

При загрузке файлов, размер которых превышает upload_max_filesize, не выводится ошибка $_FILES['filename']['error'], хотя если размер загружаемого файла превышает MAX_FILE_SIZE, должна выдаваться ошибка $_FILES['filename']['error'] = 2, которая говорит, что превышено значение MAX_FILE_SIZE указанное в HTML-форме, но она не выдается. Хоть какой-то результат ошибки можно получить только, если загружать файлы размером до 8МБ. Откуда это ограничение? Такое происходит на сервере, на котором я заказал хостинг. На моем локальном сервере (Denwer) - такого не происходит.

Следовательно, как я понимаю, проблема кроется в настройках сервера, а именно php.ini.

Профи подскажите пожалуйста, какие параметры могут на это влиять.

Бьюсь над этой проблемой уже больше недели.

Настройки сервера в инете:
post_max_size => 16M => 16M
upload_max_filesize => 32M => 32M


<html>
<body>

<form
id="form1" action="send_email.php" method="post" enctype="multipart/form-data">

<div
class="type1">
<input
type="hidden" name="MAX_FILE_SIZE" value="15728640" />
<input
type="file" name="filename">
<input
type="submit" value="Отправить">
</div>

</form>

</body>
</html>



<?php

echo '<pre>';
print_r ($_POST);
echo '</pre>';

echo "<pre>";
print_r ($_FILES['filename']);
echo "</pre>";

echo "<meta http-equiv='refresh'; content='5; url=/index.php'> ";

?>




Спустя 6 минут, 25 секунд (20.08.2011 - 19:42) Arni написал(а):
Читайте очень внимательно.

http://php.net/manual/ru/features.file-upl...post-method.php

Спустя 9 минут, 33 секунды (20.08.2011 - 19:52) shkarbatov написал(а):
А при чем тут этот мануал? Мне нужна помошь врешении проблемы, а этот мануал я уже давно читал.

Дело в том, что хостер прислал свой php.ini, если я его подкладую в денвер, то получается то же, что и на хостинге, а если денверовский php.ini, тогда все работает =(

Спустя 35 минут, 8 секунд (20.08.2011 - 20:27) AlexWindHope написал(а):
А сравнить и понять в чем дело - вера не позволяет? huh.gif
Заодно и нам бы рассказали

Спустя 7 минут, 25 секунд (20.08.2011 - 20:34) shkarbatov написал(а):
Сравнивал, что-то не получается. По идее все правильно, на локал хосте все работает, те параметры, которые вы показали в мануале идентичны, но на одном работает, а на другом нет.

Спустя 36 минут, 32 секунды (20.08.2011 - 21:11) Arni написал(а):
А почему просто не сделать вывод все ли нормально на основании этой операции?

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Файл корректен и был успешно загружен.\n";
} else {
echo "Возможная атака с помощью файловой загрузки!\n";
}


Или вы файл сразу в базу данных хотите перегнать?

Спустя 13 минут, 51 секунда (20.08.2011 - 21:24) shkarbatov написал(а):
Вы не поняли, я печатаю содержимое массива $_FILES['filename']

Смысла перемещать файла нет, так как в массиве $_FILES['filename'] какая-либо информация отсутствует, ровно как и в массиве $_POST. Если $_POST массив пустой, тогда данные не формируются в него. Идет просто "обрубка" записи данных в него.

Спустя 7 минут, 11 секунд (20.08.2011 - 21:32) Arni написал(а):
Это я увидел еще в коде из первого поста. smile.gif Я просто подумал что вам нужен факт ошибки.

Давайте начнем сначала. Можете дать ссылки на phpinfo() там и там?

Спустя 13 минут, 2 секунды (20.08.2011 - 21:45) inpost написал(а):
shkarbatov
Если пакет минимальный, то скорее всего хостинг заблокировал эту директиву, поэтому ты изменить не можешь.

Спустя 12 минут, 56 секунд (20.08.2011 - 21:58) shkarbatov написал(а):
php.ini - не дают редактировать.

Мне просто необходимо найти решение проблемы.

shkarbatov.com/apache/ini.rar - здесь два файла php.ini с denwer и с сервера в инете

Спустя 5 минут, 22 секунды (20.08.2011 - 22:03) twin написал(а):
В .htaccess попробуй это:
php_value upload_max_filesize 32M

А вообще, почему стесняешься в саппорт постучать?

upd Немного не то скопировал. Поправил.

Спустя 2 минуты, 27 секунд (20.08.2011 - 22:05) Invis1ble написал(а):
Цитата
В .htaccess попробуй это:
php_value memory_limit 32M

и еще
php_value upload_max_filesize 32M

Спустя 12 минут, 45 секунд (20.08.2011 - 22:18) shkarbatov написал(а):
Не помогает ничего.

А суппорт отморозился от меня, наверное если так будет продолжаться, то я буду переводить от них свои сайты и сайты своих клиентов

Спустя 28 минут, 49 секунд (20.08.2011 - 22:47) alex12060 написал(а):
Я понять не могу, в чем проблема? У тебя не грузятся большие файлы или наоборот, грузятся, но ошибки не происходит?

Спустя 7 минут, 32 секунды (20.08.2011 - 22:55) Invis1ble написал(а):
alex12060
Я так понял, что файлы просто не грузятся из-за ограничений хоста (upload_max_filesize скорее всего)

Да, кстати, о каком размере файлов идет речь?

Спустя 25 минут, 43 секунды (20.08.2011 - 23:20) shkarbatov написал(а):
Попробую разложить все по полочкам:

По $_FILES['filename']['error'] я анализирую загрузку файла, если он равен 0 - тогда все классно, если файл превышает размер указанный в MAX_FILE_SIZE, в моем слачае это 15М - должен выдаваться $_FILES['filename']['error'] равным 2, но такого не происходит.

При попытке вывести массивы $_POST и $_FILES['filename'] выводится:

{

}

{

}

И все, если массивы пусты, соответственно о загружаемом файле нет никакой инфы и соответственно он не загружается.

Спустя 10 часов, 1 минута, 29 секунд (21.08.2011 - 09:22) twin написал(а):
Я правильно понял,
var_dump($_FILES);
выдаёт пустоту?

А на маленькие файлы нормально реагирует?

Спустя 52 минуты, 29 секунд (21.08.2011 - 10:14) shkarbatov написал(а):
Абсолютно верно!

var_dump($_FILES); выводит array(0) { }

Забыл зайти в аккаунт =)

Спустя 34 минуты, 28 секунд (21.08.2011 - 10:49) kirik написал(а):
shkarbatov
Посмотрите директиву register globals, и гляньте что находится в массиве $GLOBALS на момент сабмита формы.

Спустя 34 минуты, 23 секунды (21.08.2011 - 11:23) shkarbatov написал(а):
Вот что он выдает:


Свернутый текст
Array
(
[GLOBALS] => Array
*RECURSION*
[_ENV] => Array
(
[TERM] => xterm
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[PWD] => /
[LANG] => C
[SHLVL] => 2
[_] => /usr/sbin/httpd
)

[TERM] => xterm
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[PWD] => /
[LANG] => C
[SHLVL] => 2
[_] => /usr/sbin/httpd
[678a52137a318140ea2e9fb6de0152b8] => rm29o2um58f8f37uesdrke4764
[HTTP_HOST] => xxxxxx.com.ua:8080
[HTTP_CONNECTION] => keep-alive
[HTTP_REFERER] => http://xxxxxx.com.ua:8080/1/
[CONTENT_LENGTH] => 20180964
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ORIGIN] => http://xxxxxx.com.ua:8080
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1
[CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundaryiyNLtrDAklE4Xfvo
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
[HTTP_ACCEPT_CHARSET] => windows-1251,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] => 678a52137a318140ea2e9fb6de0152b8=rm29o2um58f8f37uesdrke4764
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.2.3 (CentOS)
[SERVER_NAME] => xxxxxx.com.ua
[SERVER_ADDR] => xxx.xxx.xxx.xxx
[SERVER_PORT] => 8080
[REMOTE_ADDR] => xxx.xxx.xxx.xxx
[DOCUMENT_ROOT] => /var/www/vhosts/xxxxxx.com.ua/httpdocs
[SERVER_ADMIN] => xxxxxx.com.ua@xxx.com
[SCRIPT_FILENAME] => /var/www/vhosts/xxxxxx.com.ua/httpdocs/1/send_email.php
[REMOTE_PORT] => 1757
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /1/send_email.php
[SCRIPT_NAME] => /1/send_email.php
[PHP_SELF] => /1/send_email.php
[REQUEST_TIME] => 1313914693
[_POST] => Array
(
)

[_GET] => Array
(
)

[_COOKIE] => Array
(
[678a52137a318140ea2e9fb6de0152b8] => rm29o2um58f8f37uesdrke4764
)

[_SERVER] => Array
(
[HTTP_HOST] => xxxxxx.com.ua:8080
[HTTP_CONNECTION] => keep-alive
[HTTP_REFERER] => http://xxxxxx.com.ua:8080/1/
[CONTENT_LENGTH] => 20180964
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ORIGIN] => http://xxxxxx.com.ua:8080
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1
[CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundaryiyNLtrDAklE4Xfvo
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
[HTTP_ACCEPT_CHARSET] => windows-1251,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] => 678a52137a318140ea2e9fb6de0152b8=rm29o2um58f8f37uesdrke4764
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.2.3 (CentOS)
[SERVER_NAME] => xxxxxx.com.ua
[SERVER_ADDR] => xxx.xxx.xxx.xxx
[SERVER_PORT] => 8080
[REMOTE_ADDR] => xxx.xxx.xxx.xxx
[DOCUMENT_ROOT] => /var/www/vhosts/xxxxxx.com.ua/httpdocs
[SERVER_ADMIN] => xxxxxx.com.ua@gmail.com
[SCRIPT_FILENAME] => /var/www/vhosts/xxxxxx.com.ua/httpdocs/1/send_email.php
[REMOTE_PORT] => xxxx
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /1/send_email.php
[SCRIPT_NAME] => /1/send_email.php
[PHP_SELF] => /1/send_email.php
[REQUEST_TIME] => 1313914693
)

[_FILES] => Array
(
)

[_REQUEST] => Array
(
[678a52137a318140ea2e9fb6de0152b8] => rm29o2um58f8f37uesdrke4764
)

)

Спустя 8 минут (21.08.2011 - 11:31) kirik написал(а):
shkarbatov
Покажите phpinfo..

Спустя 33 минуты, 18 секунд (21.08.2011 - 12:04) shkarbatov написал(а):
Функция phpinfo() запрещена на сервере.

Вот адрес файла настроек сервера php.ini
который мне прислал хостер: http://artpack.com.ua/1/php.ini.txt

Спустя 3 часа, 29 минут, 35 секунд (21.08.2011 - 15:34) shkarbatov написал(а):
Я написал хостеру письмо, что мол если он не поможет решить проблему, то я все сайты своих клиентов буду переводить на новый хостинг. и случилось ЧУДО - они у себя что-то поправили и все за работало =)

И почему в нашей стране все через одно место?

Спустя 8 минут (21.08.2011 - 15:42) Invis1ble написал(а):
Цитата
Я написал хостеру письмо, что мол если он не поможет решить проблему, то я все сайты своих клиентов буду переводить на новый хостинг. и случилось ЧУДО - они у себя что-то поправили и все за работало =)

Прыкол laugh.gif

Цитата
И почему в нашей стране все через одно место?

риторический вопрос....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.