我有一个信息的PHP页面,并链接到文件,如PDF文件。文件类型可以是任何东西,因为它们可以由用户上传。强制一个文件下载
我想知道如何强制下载任何类型的文件,而不会强制下载链接到网站链接的其他页面。我知道可以通过标题来做到这一点,但我不想打破我的网站的其余部分。
所有到其他页面的链接都是通过Javascript完成的,实际的链接是#,所以也许这样可以吗?
我应该设置
header('Content-Disposition: attachment;)
整个页面?
我有一个信息的PHP页面,并链接到文件,如PDF文件。文件类型可以是任何东西,因为它们可以由用户上传。强制一个文件下载
我想知道如何强制下载任何类型的文件,而不会强制下载链接到网站链接的其他页面。我知道可以通过标题来做到这一点,但我不想打破我的网站的其余部分。
所有到其他页面的链接都是通过Javascript完成的,实际的链接是#,所以也许这样可以吗?
我应该设置
header('Content-Disposition: attachment;)
整个页面?
您需要发送这两个标题字段的特定资源:
Content-Type: application/octet-stream
Content-Disposition: attachment
的Content-Disposition
可以另外有一个filename
参数。
您可以通过使用将文件发送一个PHP脚本做到这一点:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');
readfile($fileToSend);
exit;
并且其文件名是通过URL传递到该脚本。您也可以使用一些Web服务器功能,如mod_rewrite迫使类型:
RewriteEngine on
RewriteRule ^download/ - [L,T=application/octet-stream]
稍有不同的风格,并准备去:)
$file = 'folder/' . $name;
if (! file) {
die('file not found'); //Or do something
} else {
// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
// Read the file from disk
readfile($file);
}
我敢肯定,这一定是个傻瓜... – Seb 2009-05-29 13:17:37
不,它不是...... – 2009-06-02 10:09:22