ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

02.05.2009, 02:24
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от Pashkela
header('Content-Length: 213133');
обычно в самом конце. Еще возможно надо указать язык, чарсет и т.д.
Ой,кактолько непробывал,уже премешивал их как только мог,ив конец,и в начало,в общем извращался я уже 
Хм,кинь пожалуйста примыр,заголовков которые ты привел,и вообще,по какоому бы порядку их расставил ты? Может я еще так не пробывал,а то уже умаялся,чсно слово
|
|
|

02.05.2009, 02:33
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Смешные вы) Научитесь юзать курл...и спрашивается нахер он тут нужен? Курлом получать данные, а потом ф-цией readfile() их считывать, бред
Всё это легче реализовать через fopen(), тем более при закачке с удалённых хостов. readfile тут может отказаться очень неблагонадёжной функцией. Тем более если решишь сделать скачку по кускам, докачку и т.д....
Во-вторых, заголовки не точные. Mime-тип audio/mpeg, Transfer-Encoding нужно ставить binary
Ну и дальше через цикл всё закачивается.
PHP код:
<?php
$link = 'http://bla-bla.ru/1.mp3';
if ($openFile = @fopen($link, 'rb')) {
$fileInfo = stream_get_meta_data($openFile);
preg_match('#Content-Length:\s([0-9\S]*)#i', join(' ', $fileInfo['wrapper_data']), $outSize);
$size = !empty($outSize[1]) ? $outSize[1] : '';
preg_match('#Last-Modified:\s(.*)\sGMT#i', join(' ', $fileInfo['wrapper_data']), $outMod);
$lastMod = !empty($outMod[1]) ? $outMod[1] : '';
header('HTTP/1.1 200 OK');
header('Content-Length: '.$size);
header('Content-Type: audio/mpeg');
header('Last-Modified: '.$lastMod);
header('Content-Disposition: attachment; filename="имя_файла.мп3";');
header('Cache-Control: private');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
while (!feof($openFile) && !connection_status()) {
echo fread($openFile, 1024);
flush();
ob_flush();
}
}
?>
З.Ы. какой ещё порядок заголовков? Вы чего?
|
|
|

02.05.2009, 02:37
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от .:EnoT:.
Смешные вы) Научитесь юзать курл...и спрашивается нахер он тут нужен? Курлом получать данные, а потом ф-цией readfile() их считывать, бред
Всё это легче реализовать через fopen(), тем более при закачке с удалённых хостов. readfile тут может отказаться очень неблагонадёжной функцией. Тем более если решишь сделать скачку по кускам, докачку и т.д....
Во-вторых, заголовки не точные. Mime-тип audio/mpeg, Transfer-Encoding нужно ставить binary
Ну и дальше через цикл всё закачивается.
PHP код:
<?php
$link = 'http://bla-bla.ru/1.mp3';
if ($openFile = @fopen($link, 'rb')) {
$fileInfo = stream_get_meta_data($openFile);
preg_match('#Content-Length:\s([0-9\S]*)#i', join(' ', $fileInfo['wrapper_data']), $outSize);
$size = !empty($outSize[1]) ? $outSize[1] : '';
preg_match('#Last-Modified:\s(.*)\sGMT#i', join(' ', $fileInfo['wrapper_data']), $outMod);
$lastMod = !empty($outMod[1]) ? $outMod[1] : '';
header('HTTP/1.1 200 OK');
header('Content-Length: '.$size);
header('Content-Type: audio/mpeg');
header('Last-Modified: '.$lastMod);
header('Content-Disposition: attachment; filename="имя_файла.мп3";');
header('Cache-Control: private');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
while (!feof($openFile) && !connection_status()) {
echo fread($openFile, 1024);
flush();
ob_flush();
}
}
?>
З.Ы. какой ещё порядок заголовков? Вы чего?
Ты вообще непонял проблему,перечитай.
|
|
|

02.05.2009, 02:50
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Я как раз-таки понял твою проблему, показал как получить длину файла и как по-нормальному отдать его браузеру
|
|
|

02.05.2009, 02:51
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Объясняю.
Курлом,я проверял заголовки,файл я получаю про помощи Readfile(); тоесть курл,к моей проблеме не имеет никакого отношения,я просто какгде протестировал отдачу заголовков скриптом.
|
|
|

02.05.2009, 02:56
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
тяжёлый случай...
Тебе заголовки нужны были, вот тебе заголовки, смотри.
А про readfile() это просто пример того, что при закачке с удалённых хостов не нужно её использовать. Это просто как совет...но тебе на пользу кажись не пойдёт...
|
|
|

02.05.2009, 03:02
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от .:EnoT:.
тяжёлый случай...
Тебе заголовки нужны были, вот тебе заголовки, смотри.
А про readfile() это просто пример того, что при закачке с удалённых хостов не нужно её использовать. Это просто как совет...но тебе на пользу кажись не пойдёт...
Гыгы 
Да пойдет,куда денеться то,просто я думал что readfile ыбстрее сокетов и курла...
|
|
|

02.05.2009, 03:39
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Может у кого-нить есть офлайн версия мануала http://ru.php.net/manual/ru/index.php..
Просто сейчас с интернетом проблемы... Или посоветуйте другой справочник, так чтобы удобный был, ну типа поиск по функциям и т.д...)
|
|
|

02.05.2009, 08:21
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
Провел на форуме: 994199
Репутация:
258
|
|
|
|
|

02.05.2009, 14:32
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Подскажите как определить, работает ли глобальный массив $_SERVER['PHP_AUTH_USER'] на хостинге?
Значит есть basic авторизация на php, но естественно она работает только на каждом втором хосте, можно ли заранее определить где она работает, а где нет?
Пробовал через function_exist(), результата никакого, кажется она только с функциями работает, а не с глобальными массивами.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|