Mime类型的下载文件

时间:2009-07-02 14:59:11

标签: php download mime

我正在尝试创建可下载的视频文件。在我的网站中有一个文件列表。 所有视频均采用.flv格式(闪光灯)。所有视频的文件都有确切的链接。 但是在点击内容后的所有浏览器中都会加载到浏览器的窗口中。我不需要这个。据我所知,我应该创建redirect-page包含mime-type的下载文件。我该怎么办? 语言:php

2 个答案:

答案 0 :(得分:9)

推荐的MIME类型为application/octet-stream

  

“octet-stream”子类型用于指示正​​文包含任意二进制数据。 [...]

     

接收“application / octet-stream”实体的实现的建议操作是简单地提供将数据放入文件中,任何Content-Transfer-Encoding撤消,或者可能将其用作输入用户指定的过程。

答案 1 :(得分: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设置为正在下载的文件的mime类型。

将“下载”链接指向此页面。

对于同一类型的多个文件:

<?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);

?>

替换上面指定的信息,并使用包含文件路径的名为“filepath”的GET参数指向此页面的“下载”链接。

例如,如果您将此php文件命名为“download.php”,请将名为“movie.mov”的文件(与download.php位于同一目录中)的下载链接指向“download.php?filepath = movie” .MOV”。