Nano Hash - криптовалюты, майнинг, программирование

Проблемы с воспроизведением FLV, переданного через PHP

Я столкнулся со следующей проблемой: я хотел бы, чтобы люди не загружали FLV-файлы с сайта (да, я знаю, что они получат их, если они действительно захотят их в конце концов, неважно), поэтому я хотел поместите их вне моих htdocs и «перенесите» их через PHP.

Для этого я использую довольно простой фрагмент кода:

//Generate $filename here
header('Content-Disposition: filename=video.flv');
header('Content-Type: video/x-flv');
readfile($filename);

Это отлично работает, когда я просто вызываю PHP и получаю FLV, который мне нужен, но как только я передаю его в swf, который должен загружать видео, все перестает работать, и вообще ничего не происходит (я вижу в мои "Инструменты", что браузер действительно загружает все видео, но swf просто не начинает его воспроизводить). Я подозреваю, что это как-то связано с тем, что swf думает: «Это не FLV», но я понятия не имею, почему. Кстати, информация заголовка, отправляемая с переданным файлом, в порядке.

Любая идея?

Спасибо!

07.06.2011

  • Если вы не передаете FLV через PHP, какие заголовки возвращает ваш сервер, когда файл запрашивается SWF? Можете ли вы также дать заголовки запроса? Я прошу об этом, потому что предполагаю, что некоторые заголовки ответа могут отсутствовать, когда вы передаете FLV через свой PHP. 07.06.2011
  • Попробуйте закомментировать заголовок Content-Disposition. 07.06.2011
  • Спасибо за вклад, странно то, что когда я вызываю исходный файл FLV, заголовки (как запрос, так и ответ) полностью пусты (по крайней мере, это то, что мне говорят Chrome Dev Tools). Заголовки для PHP выглядят так: 07.06.2011
  • Accept:*/* Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:de-DE,de;q=0.8 ,en-US;q=0.6,en;q=0.4 Соединение:keep-alive Хост:www.mysite.com Referer:myswf.swf User-Agent:Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.24 (KHTML, например Геккон) Chrome/11.0.696.77 Safari/534.24 07.06.2011
  • и: Соединение:Keep-Alive Content-Disposition:filename=video.flv Content-Type:video/x-flv Дата:Вторник, 07 июня 2011 г. 11:31:31 GMT Keep-Alive:timeout=2, max=194 Сервер :Apache Transfer-Encoding:chunked X-Powered-By:PHP/5.2.17 07.06.2011
  • Хорошо всем, я понятия не имею, почему это имело окончательное значение, но это то, что я изменил, чтобы заставить его работать. Когда я устанавливал настройки, я передал имя файла с помощью $_GET, чтобы я мог легко протестировать вещи, но поскольку сейчас я использую $_SESSION для передачи имени файла, все работает просто отлично. Никакой разницы в шапке, ничего. Точно так же, как я прошел 01. Я рад, что теперь это работает, но кто-нибудь знает, в чем может быть логика? 07.06.2011
  • если у вас есть дополнительная информация, обновите свой вопрос вместо того, чтобы публиковать комментарии, их довольно трудно читать 07.06.2011

Ответы:


1

Просто идея, но, возможно, плеер полагается на заголовок Content-Length, который, похоже, вы не отправляете.

07.06.2011
  • Спасибо за ответ, но, к сожалению, я уже пробовал это, и это не имеет никакого значения. Но, возможно, мне все же следует включить это, чтобы избежать других возможных проблем! 07.06.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..