[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка большого файла на сервер. ПОМОГИТЕ ПОЖАЛУ
kosan
Здравствуйте.

Есть задача:
Необходимо с панели администрирования сайтом, загрузить на сервер файл размером 20 метров (видео-панорама). Т.е. в поле Файл выбираем на компе файл, нажимаем загрузить и он должен оказаться на серваке.

Естественно на сервере стоит ограничение 4 метра.

Можно ли решить эту задачу, не меняя ограничения сервера?

ps
Написал скрипт загрузки файлов по FTP, но обрывается работа скрипта и все sad.gif(

ПОМОГИТЕ ПОЖАЛУЙСТА



Спустя 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:

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 файл загрузки?

Спустя 11 минут, 51 секунда (28.05.2010 - 10:30) Семён написал(а):
В корневую папку сайта smile.gif
Быстрый ответ:

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