Скрипт для загрузки файла из браузера Android - PullRequest
0 голосов
/ 31 марта 2011

Я не веб-разработчик во всех отношениях.Но я пытаюсь помочь кому-то доставить видео со своего сервера.Обычно, когда пользователь нажимает кнопку на веб-сайте, мы хотим, чтобы пользователю было предложено загрузить видео.Поэтому, после того, как я некоторое время гуглил, я понял, как написать короткий php-скрипт с использованием content-disposition:

<?php
$fn = 'videoFile.mp4';

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header('Content-Description: File Transfer');
header('Content-type: video/mp4');
header('Content-Length: '.filesize($fn));
header('Content-disposition: attachment; filename='.$fn);
readfile($fn);
?>

Так что кнопка на веб-сайте указывает на этот скрипт.Браузеры для ПК, кажется, начинают загрузку без проблем.Но основное внимание это для телефонов Android.Когда вы нажимаете, чтобы загрузить файл в браузере Android по умолчанию, происходит сбой, и все, что он говорит, - «Загрузка не удалась».

Другое дело, что на моем компьютере (с использованием Firefox) загрузка начинается и занимает около 200 МБ, она просто останавливается.Он не показывает никаких признаков сбоя, просто выглядит, как будто он закончил загрузку.Фактический размер файла составляет около 1 ГБ.

Я немного поигрался с типом контента, надеясь, что это проблема.Я использовал "video / mpeg" и "application / force-download", и ни один из них не работал.

Есть что-то, что я не делаю, пишу?Могут ли быть связаны 2 проблемы?Должен ли я идти об этом по-другому?Спасибо за любой вклад.

1 Ответ

1 голос
/ 01 апреля 2011

Браузер Android не похож на Content-disposition: и связанные заголовки.Я рекомендую просто перенаправить к рассматриваемому файлу.

...