我正在尝试创建可下载的视频文件。在我的网站上有一个文件列表。所有视频均为 .flv 格式(闪存)。所有视频都有指向该文件的确切链接。但是在所有浏览器中单击内容后都会加载到浏览器的窗口中。我不需要这个。据我了解,我应该创建包含下载文件的 mime 类型的重定向页面。我究竟应该怎么做?语言:php
问问题
17305 次
2 回答
9
推荐的 MIME 类型是application/octet-stream
:
“八位字节流”子类型用于指示主体包含任意二进制数据。[…]
对于接收“application/octet-stream”实体的实现,推荐的操作是简单地将数据放入文件中,取消任何 Content-Transfer-Encoding,或者将其用作用户指定的输入过程。
于 2009-07-02T15:08:21.253 回答
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” .
于 2009-07-02T15:03:29.360 回答