使用PHP标头强制下载

时间:2017-09-01 10:28:39

标签: php

我正在使用此代码强制使用标题下载,文件名已正确重命名但文件为空,实际文件未被下载。

$file = url . '/uploads/audio/' . $trackFile;

$tmp = explode(".", $file);
$newTrackName = $trackTitle . '.' . end($tmp);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $newTrackName); 
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

3 个答案:

答案 0 :(得分:1)

您错过了实际发送文件,例如

echo readfile($file);
exit;

header("Location: $file");

答案 1 :(得分:1)

您需要添加..

readfile($file);
exit;

答案 2 :(得分:0)

你是对的,我赞成了两个答案,但我也发现新版本的cpanel默认情况下是fopen,我必须启用fopen。