Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 11:17   #1
LevonNikox
Пользователь
 
Регистрация: 18.05.2009
Сообщений: 51
Вопрос не качает большие файлы

Всем привет!
на сайте есть скрипт для скачиванья файла но не могу качать большие файлы-примерно со 100 мб начинает глючить!

PHP код:
    header("Pragma: public");

    
header("Expires: 0");

    
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    
header("Cache-Control: public");

    
header("Content-Description: File Transfer");

header('Content-Type: application/octet-stream');




$rr="imya faila";

header('Content-Length: '.filesize($rr));
header('Content-Disposition: attachment; filename='$rr);



readfile($rr); 
я под тем же именем загрузил файл меньше(5 мб) и сработал скрипт-а потом обратно старый файл (примерно 700 mb) и опять начало глючить!
Жду ответов!Заранее спасибо!
LevonNikox вне форума Ответить с цитированием
Старый 26.08.2010, 14:29   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Возможно дело в upload_max_filesize - директиве настройки сервера(максимальный размер файла, который может быть загружен. Если Вам необходимо работать с большими файлами, измените эту настройку. По умолчанию 2М).
Подробнее...
Andkorol вне форума Ответить с цитированием
Старый 26.08.2010, 17:19   #3
LevonNikox
Пользователь
 
Регистрация: 18.05.2009
Сообщений: 51
По умолчанию

я и это пробовал-проблемма не в этом!в гугле тоже искал такую проблему тока там все думают что проблемма в браузере а я во всех браузерах пробовал-не работает везде!!
LevonNikox вне форума Ответить с цитированием
Старый 26.08.2010, 19:08   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от LevonNikox Посмотреть сообщение
я и это пробовал-проблемма не в этом!
Что показывает phpinfo() в строке upload_max_filesize ?
Andkorol вне форума Ответить с цитированием
Старый 26.08.2010, 22:45   #5
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

В .htaccess пропишите:

php_value post_max_size 30M
php_value upload_max_filesize 30M

или в php.ini правьте эти же значения(тут поставлено 30мб, поставите сколько нужно вам)
Если не работает на "живом" хостинге, пишите в службу поддержки
Gorychev вне форума Ответить с цитированием
Старый 29.08.2010, 20:52   #6
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

Все никак не пойму, о чем речь идет?
Откуда и куда файл передается: с сервера на комп ( download ) или с компа на сервер ( upload ) ?

Если речь идет о "скачивании" (т.е. download ), то через php-скрипт следует передавать только небольшие файлы. Точно не знаю, ибо ни разу не пробовал, но полагаю проблема в следующем: все время загрузки файла php-скрипт выполняется, по прошествии максимального времени исполнения ( директива max_execution_time ), обычно это 20-30 секунд, сервер благополучно решает, что скрипт завис и сбрасывает соединение.

Хотя возможно ваш веб-сервер имеет иные ограничения - там по ссылке все написано.

PS: Кстати, директивы post_max_size и upload_max_filesize актуальны лишь при upload'е.
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.

Последний раз редактировалось InternetStranger; 29.08.2010 в 20:54.
InternetStranger вне форума Ответить с цитированием
Старый 29.08.2010, 21:52   #7
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

InternetStranger, нет дело не в этом. Только что попробовал у себя. Сервер просто не передает в браузер ничего и всё и Content-Type документа при этом не изменяется. С маленькими файлами всё работает.
Никки вне форума Ответить с цитированием
Старый 29.08.2010, 21:53   #8
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

При этом error_reporting(2047); не показывает никаких сообщений
Никки вне форума Ответить с цитированием
Старый 29.08.2010, 22:41   #9
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

Нуууу. Тогда не знаю. Может заголовок не правильно формируется.
Так ли уж принципиально передавать файлы через php-скрипт, не вижу ни одного преимущества? Почему бы не отдать ссылку на скачивание самому браузеру, он сам скачает )

Опять же не пробовал, пишу на коленке:
PHP код:
$rr="imya faila"
header"Location: " $rr ); 
Ну или в конце концов создаете простенькую html-страничку с отложенным редиректом и ссылкой на скачивание, как это делает большинство файловых хостингов.


PS: Встречал как-то скрипт, где передача через php-скрипт использовалась для хотлинк-защиты файлов. Если дело в этом, что лучше поступить как на всяких файловых хостингах: запрашиваемый файл копируется во временную папку, и пользователю отдается ссылка только на временный файл. А второй скрипт будет удалять все файлы из временной папки, старшие, скажем, 24 часов. Таким образом ссылка на оригинальный файл никому не будет известна.

PHP код:
function getExtension($filename) {  return end(explode("."$filename)); } // определяет расширение файла

$rr="Z:/home/site/www/files_folder/imya_faila.doc"// абс. путь к файлу
$tmp 'Z:/home/site/www/tmp/'.md5'соль'basename($rr) ). '.' getExtension(basename($rr)); // временный файл
 


if ( copy$rr$tmp ) ) { header"Location: " $rr ); }
else{ echo 
"Запрашиваемый файл не найден!"; } 
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.

Последний раз редактировалось InternetStranger; 29.08.2010 в 22:43.
InternetStranger вне форума Ответить с цитированием
Старый 30.08.2010, 22:34   #10
LevonNikox
Пользователь
 
Регистрация: 18.05.2009
Сообщений: 51
По умолчанию

большое вам спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!
LevonNikox вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновить саму себя - Программа запускается, качает обновление и, по идее, переписывается поверх cybviolence Общие вопросы Delphi 3 07.04.2010 13:37
NMPOP3 не загружает большие файлы D@rkD@iver Работа с сетью в Delphi 0 24.02.2010 11:24
2 компа в локальной сети - на сайты заходит и всё качает, но вот игры по интернету неработают Pej Свободное общение 5 16.09.2009 19:49
поменять большие буквы на маленькие и маленькие на большие в си++ Барби Помощь студентам 4 08.04.2008 01:25