В настоящее время я пытаюсь создать файл PHP, в котором он может выводить видео, которое не находится под public_html. Я использую следующий скрипт PHP для вывода видео:Что может быть причиной того, что PHP не выводит видео?
<?php
//PHP script to output videos
//Full version of file does a lot of database stuff
//Get $path of file
header('Content-type: video/mp4');
header('Content-Length: '.filesize($path)); // provide file size
$contents = file_get_contents($path);
echo $contents;
//I also tried readfile($path) with the same results
У меня есть подозрение, что это мой сервер. Итак, я попытался просмотреть тот же видеофайл напрямую (www.site.com/video.mp4). Выполнение этого прямо работало нормально.
Первоначально это работало нормально. Только в последнее время это не сработало. Я не уверен, что это то, что я установил на своем сервере. Я помню, что сделал несколько изменений в php.ini и, возможно, в .htaccess (или некоторые другие, скрытые с настройками внутри них), что заставляет меня думать, что это как-то связано с этим. Есть ли что-то в php.ini и/или .htaccess (или любой другой файл скрытых настроек, похожий на php.ini и .htaccess), который мне нужно будет изменить?
Сейчас я просто тестирую свой сайт на настольных браузерах. Я тестировал это как на Chrome, так и на Firefox, и они дают мне те же результаты. Я пробовал использовать ffmpeg для преобразования моих видео во многие разные видеоформаты, но он выходит с одинаковыми результатами (может играть напрямую, не может воспроизводиться через php-скрипт).
Когда я открываю файл php, консоль не имеет ошибок.
Что может быть причиной того, что мой PHP-скрипт не выводит видеоконтент?
Что делает скрипт делать? Выводит ли что-нибудь? Есть ли запись в error_log? – Vero
@Vero выводит видео. и нет, никаких ошибок. –
Отправляет ли он правильную 'Content-Length'? – Barmar