【发布时间】:2009-07-14 04:34:17
【问题描述】:
我正在制作一个文件共享网站来取乐。试图让它在我点击下载时开始下载。而不仅仅是指向/files/$file 的链接,我正在尝试进行标头重定向:
下载.php
/**
* File Download
*/
$query = mysql_query("SELECT id,name,desc FROM files WHERE id = ".intval($_GET['id']));
$row = mysql_fetch_assoc($query);
$file = $row['name'];
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
Filename: <?=$row['name']?>
Desc: <?=$row['desc']?>
<a href="#">Download this file</a>
我卡在这里了,接下来我该怎么办?
谢谢
【问题讨论】:
-
请注意,“readfile 和 fpassthru 比使用 feof/echo fread 循环慢约 55%”。根据php.net上的某人
-
@Alex L:哇,真的吗?我认为 readfile 更快,因为它可以映射...你自己测试过吗?