Есть задача:
Необходимо с панели администрирования сайтом, загрузить на сервер файл размером 20 метров (видео-панорама). Т.е. в поле Файл выбираем на компе файл, нажимаем загрузить и он должен оказаться на серваке.
Естественно на сервере стоит ограничение 4 метра.
Можно ли решить эту задачу, не меняя ограничения сервера?
ps
Написал скрипт загрузки файлов по FTP, но обрывается работа скрипта и все (
ПОМОГИТЕ ПОЖАЛУЙСТА
Спустя 4 минуты, 40 секунд (26.05.2010 - 18:10) Gabriel написал(а):
ini_set(); пробовали?
Спустя 1 час, 25 минут, 43 секунды (26.05.2010 - 19:36) vagrand написал(а):
Цитата |
Можно ли решить эту задачу, не меняя ограничения сервера? |
Без разбиения файла на части весом до 4-х метров - нет.
Спустя 7 часов, 46 минут, 13 секунд (27.05.2010 - 03:22) kosan написал(а):
Цитата (Gabriel @ 26.05.2010 - 15:10) |
ini_set(); пробовали? |
Я так понял это не везде работает... Да?
Спустя 3 часа, 30 минут, 10 секунд (27.05.2010 - 06:52) Семён написал(а):
в .htaccess:
И не забыть в скрипте убрать ограничение по времени выполнения. (max execution time)
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
И не забыть в скрипте убрать ограничение по времени выполнения. (max execution time)
Спустя 2 часа, 15 минут, 45 секунд (27.05.2010 - 09:08) vagrand написал(а):
Цитата |
И не забыть в скрипте убрать ограничение по времени выполнения. (max execution time) |
max execution time - на загрузку файла никак не влияет, то время что файл грузится на сервер не лимитируется этим параметром
Спустя 5 минут, 37 секунд (27.05.2010 - 09:14) Семён написал(а):
Имелось ввиду (set_time_limit)
Спустя 10 минут, 52 секунды (27.05.2010 - 09:25) vagrand написал(а):
Цитата |
Имелось ввиду (set_time_limit) |
Ну так set_time_limit() как раз и изменяет max execution time. Читай мануал: http://ua2.php.net/set_time_limit
Спустя 2 минуты, 41 секунда (27.05.2010 - 09:27) Семён написал(а):
vagrand
С вами в спор вступать не собираюсь, вы у нас всезнающий.
С вами в спор вступать не собираюсь, вы у нас всезнающий.
Спустя 13 минут, 50 секунд (27.05.2010 - 09:41) vagrand написал(а):
Цитата |
С вами в спор вступать не собираюсь, вы у нас всезнающий. |
По моему я с Вами ни о чем не спорил. Я Вам дал линк на страницу официального мануала по этой функции где четко указано какой параметр она изменяет.
Спустя 18 минут, 12 секунд (27.05.2010 - 09:59) Семён написал(а):
vagrand
А я человеку написал, что следует сделать. Разницу чувствуете? Теория / Практика?
А я человеку написал, что следует сделать. Разницу чувствуете? Теория / Практика?
Спустя 2 минуты, 27 секунд (27.05.2010 - 10:02) vagrand написал(а):
А я всего то написал, что max execution time изменять в данном случае не нужно. Где я ошибся?
Спустя 7 минут, 17 секунд (27.05.2010 - 10:09) Семён написал(а):
Цитата (vagrand @ 27.05.2010 - 11:02) |
А я всего то написал, что max execution time изменять в данном случае не нужно. Где я ошибся? |
В этом вы и ошиблись, при загрузке файла в 20 мб и канала в 64кбит, по истечению работы скрипта закачка оборвётся (поэтому мы и указываем в скрипте либо длительное выполнение либо ставим вообще 0)
Доказывать влияет, нужно это или нет, не буду.
Спустя 48 минут, 25 секунд (27.05.2010 - 10:57) vagrand написал(а):
Цитата |
В этом вы и ошиблись, при загрузке файла в 20 мб и канала в 64кбит, по истечению работы скрипта закачка оборвётся (поэтому мы и указываем в скрипте либо длительное выполнение либо ставим вообще 0) |
Вы глубоко заблуждаетесь. Когда вы сабмитите форму с файлом на сервер, то скрипт, который обработает в дальнейшем загруженный файл запустится только после того как файл будет полностью загружен на сервер. Это логично, т.к. по факту сабмит формы это тот же HTTP запрос, а сервер не может обработать его до того как полностью его получит, т.к. он просто не будет знать как его следует обрабатывать.
Вот Вам пример скрипта, который я тока что протестировал у себя:
<?php
set_time_limit(1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<?php
var_dump($_FILES);
?>
<form enctype="multipart/form-data" method="post">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File" id="submit">
</form>
</body>
</html>
Я грузил файл размером чуть больше 400Мб, реквест к серверу занял больше 3-х минут, но при этом скрипт отработал совершенно нормально, хотя я поставил ему max_execution_time = 1 секунде.
Спустя 23 часа, 21 минута, 6 секунд (28.05.2010 - 10:18) kosan написал(а):
Ребят, спасибо большое!
А куда .htaccess кидать? В корень сайта или в папку, где лежит php файл загрузки?
А куда .htaccess кидать? В корень сайта или в папку, где лежит php файл загрузки?
Спустя 11 минут, 51 секунда (28.05.2010 - 10:30) Семён написал(а):
В корневую папку сайта