2009-07-02 6 views
2

Я пытаюсь создать загружаемые видео-файлы. На моем сайте есть список файлов. Все видеоролики находятся в формате .flv (flash). Существует точная ссылка на файл для всех видео. Но во всех браузерах после загрузки содержимого загружается окно браузера. Мне не нужно в этом. Как я понимаю, я должен создать страницу перенаправления, в которой содержится mime-тип файла загрузки. Что я должен делать? Язык: PHPMime-типа загружаемого файла

ответ

7

Создать 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».

+0

Как я знаю download.php? Filepath = movie.mov is not good =) Причина everyboady может загрузить любой файл с сервера. Но все равно спасибо. – Ockonal

+0

Кроме того, вы можете создать один файл php для каждого файла загрузки фильма. Но это может стать утомительным. –

+0

Извините, но ваш метод не работает = (После перехода к сценарию я получил окно из браузера для загрузки. Это то, что мне нужно, но он загружает файл, который равен 0 байтам = ( – Ockonal

9

Рекомендуемый тип MIME для этого является application/octet-stream:

подтип «октет-поток» используется для указания того, что тело содержит произвольные двоичные данные. [...]

Рекомендуемое действие для реализации, которое получает объект «приложение/октет-поток», состоит в том, чтобы просто предложить помещать данные в файл, при этом любое кодирование Content-Transfer-Encoding отменено или, возможно, использовать его в качестве входных данных для указанного пользователем процесса.