- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
В общем то это задача не такая уж и сложная. Я решил ее вот так:
Это превосходно работает. Но! хотелось бы чтобы было лучше. Во первых fopen не очень хороший способ скачки файла ибо user-agent не подменить это раз. Во вторых Range не указать, ну то есть откуда покуда качать(какую часть файла). В CURL это делается директивой CURLOPT_RANGE.
Да я знаю о функции fseek, но если файл находится на удаленном хосте - то эта функция нифига не пашет как надо. Зато CURLOPT_RANGE пашет, я проверял).
Собственно меня интересует как реализовать передачу файла по чанкам через CURL. Пока что это делается так:
Это не очень хороший вариант, так как пока скрипт не считает удаленный файл в оперативу - он отдавать его не начнет. То есть придется ждать минуты 4 пока файл буферизуется! В 1 случае эта проблемма решается через flush() - эта команда вынуждает данные выводиться из буфера. Но вот куда мне командку flush в CURL'е поставить я ума не приложу. Где-то читал про CURLOPT_WRITEFUNCTION, но как с ней работать и то ли это что я ищу - не знаю. Знающие люди - помогите разобраться что к чему.
Это не очень хороший вариант, так как пока скрипт не считает удаленный файл в оперативу - он отдавать его не начнет.
Конечно не отдает, если там установлена опция CURLOPT_RETURNTRANSFER. По моему даже с вами мы это уже один раз обсуждали.
ПС.
А через fopen агент и заголовки можно передать http://php.net/manual/ru/function.fopen.php
По моему даже с вами мы это уже один раз обсуждалось.
Да да, обсуждалось. К несчастью я тогда нашел 1 вариант скачки файла через fopen и просто напросто на curl забил. Сейчас решил что поступил не совсем верно. Ок, ща выпилю эту опцию.
---------- Добавлено 09.05.2013 в 17:26 ----------
Было сделано так:
Он так вообще не качает(
---------- Добавлено 09.05.2013 в 17:50 ----------
А через fopen агент и заголовки можно передать http://php.net/manual/ru/function.fopen.php
Круто!) Только что заметил0 Спасибо)
Он так вообще не качает(
Должен. Но раз результат отдается сразу, то
curl_exec($ch);
curl_close($ch);
Смотрите что-бы были все необходимые заголовки
WTF?
Для аттачей заголовок по моему должен быть таким
header('Content-Disposition: attachment;filename='.$tmp_name.'.mp3');
Он так вообще не качает(
А если вообще не качает, тогда вообще удалите header("Transfer-Encoding: chunked");
так как апач сам будет отдавать этого заголовок если Content-length не известен, и кодировать пакет в соответствий с форматом Chunked transfer