Я пытаюсь создать загружаемые видео-файлы. На моем сайте есть список файлов. Все видеоролики находятся в формате .flv (flash). Существует точная ссылка на файл для всех видео. Но во всех браузерах после загрузки содержимого загружается окно браузера. Мне не нужно в этом. Как я понимаю, я должен создать страницу перенаправления, в которой содержится mime-тип файла загрузки. Что я должен делать? Язык: PHPMime-типа загружаемого файла
ответ
Создать PHP страницу со следующим:
<?php
$filepath = "path/to/file.ext";
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filepath");
header("Content-Type: mime/type");
header("Content-Transfer-Encoding: binary");
// UPDATE: Add the below line to show file size during download.
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
?>
Установите $filepath
на путь к файлу, который нужно загрузить и установить Content-Type
к типу мим из загружаемого файла.
Наведите ссылку "загрузить" на эту страницу.
Для нескольких файлов одного и того же типа:
<?php
$filepath = $_GET['filepath'];
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filepath");
header("Content-Type: mime/type");
header("Content-Transfer-Encoding: binary");
// UPDATE: Add the below line to show file size during download.
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
?>
Заменить информацию, как указано выше, и точка «скачать» ссылку на эту страницу с параметром GET под названием «Путь к файлу», содержащий путь к файлу.
Например, если вы назовете этот файл php «download.php», укажите ссылку для загрузки для файла с именем «movie.mov» (в том же каталоге, что и download.php), на «download.php? Filepath = movie.mov».
Рекомендуемый тип MIME для этого является application/octet-stream
:
подтип «октет-поток» используется для указания того, что тело содержит произвольные двоичные данные. [...]
Рекомендуемое действие для реализации, которое получает объект «приложение/октет-поток», состоит в том, чтобы просто предложить помещать данные в файл, при этом любое кодирование Content-Transfer-Encoding отменено или, возможно, использовать его в качестве входных данных для указанного пользователем процесса.
Как я знаю download.php? Filepath = movie.mov is not good =) Причина everyboady может загрузить любой файл с сервера. Но все равно спасибо. – Ockonal
Кроме того, вы можете создать один файл php для каждого файла загрузки фильма. Но это может стать утомительным. –
Извините, но ваш метод не работает = (После перехода к сценарию я получил окно из браузера для загрузки. Это то, что мне нужно, но он загружает файл, который равен 0 байтам = ( – Ockonal