Проблема с загрузкой больших файлов в PHP


Ja setei в настройках php на мой сайт предельный размер upload (post_max_size и upload_max_filesize). Поставил 1 Гига на всякий случай для тестирования.

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

загружать падает всегда на проценты разные, поэтому я думаю, что не будет проблема с ограничением пространства. И файлы до 5 мегабайт загружаются нормально, без ошибок.

Выполняю обычно uploads, ftp больших файлов.

Это было бы из-за нестабильной работы сервера? Как работает этот процесс и как контролирует его? Как мне повторится более чем 2 раза загружать?

ОБНОВЛЕНИЕ

Отвечая на вопрос, сервер-это apache. И время ошибка является 1 минута. В php info обратился против 60 (см какой-то тайм-аут 60 секунд настроен) и я заменил все, что нашел тебя. Ошибка сохраняется.

Ниже мои настройки php:

[PHP]
asp_tags = On
include_path = ".:/usr/share/pear"
ignore_repeated_source = Off
variables_order = "EGPCS"
track_errors = On
output_buffering = 4096
doc_root = 
log_errors = On
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
auto_append_file = 
disable_classes = 
enable_dl = Off
display_startup_errors = Off
user_dir = 
extension_dir = "/usr/lib/php/modules/"
register_argc_argv = On
display_errors = On
allow_call_time_pass_reference = Off
safe_mode_exec_dir = 
default_socket_timeout = 1000000000
register_globals = On
unserialize_callback_func = 
y2k_compliance = On
magic_quotes_runtime = Off
expose_php = Off
log_errors_max_len = 1024
report_memleaks = On
engine = On
memory_limit = 640000000000M
short_open_tag = On
upload_tmp_dir = /home/storage/0/be/ca/johny2/tmp
max_execution_time = 6000000000000000
safe_mode_include_dir = 
serialize_precision = 100
precision = 14
register_long_arrays = On
safe_mode = Off
zend.ze1_compatibility_mode = Off
zlib.output_compression = Off
ignore_repeated_errors = Off
default_mimetype = "text/html"
disable_functions = 
file_uploads = On
magic_quotes_sybase = Off
max_input_time = 6000000000000
magic_quotes_gpc = Off
error_reporting = E_ALL & ~E_NOTICE
safe_mode_gid = Off
auto_prepend_file = 
implicit_flush = Off
allow_url_fopen = On
upload_max_filesize = 1000000000000M
post_max_size = 100000000000000M
Author: Maniero, 2013-12-19

3 answers

Установите в PHP.ini следующие сведения:

upload_max_filesize 10M
post_max_size 10M
max_input_time 300
max_execution_time 300

, Затем установите в коде константы:

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

Деталям, всегда проверяйте, что за phpinfo(); если сведения, которые вы тут задание на php.ini применяются, очень часто установить в php.ini неправильно.

После того, как таким образом вы поднимаетесь файл:

$name = 'arquivogrande.zip';

header("Content-Type: application/zip");
header("Content-Length: " . filesize($name));

readfile($name);
exit;

Если продолжает появляться время, используйте функцию set_time_limit ( temposegundos), чтобы увеличить время выполнения PHP.

Это должно хватить.

 2
Author: Guerra, 2013-12-20 11:09:05

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

 1
Author: Joao Paulo, 2013-12-26 15:26:32

Необходимо внести изменения в файл php.ini две переменные: post_max_size и upload_max_filesize в формате стандартного синтаксиса PHP.

Например:

post_max_size = 100M

upload_max_filesize = 100M
 0
Author: hernandev, 2013-12-19 20:12:51