如何让php强制下载文件。我在文件歌曲中有一个名为song1的文件,这是一首歌。所以从我的页面来看它是歌曲/歌曲1。如何在php运行后立即下载文件?
答案 0 :(得分:1)
您必须发送一些HTTP标头:
header('Content-disposition:attachment; filename=song.mp3;');
然后你必须使用例如file_get_contents()
来拉动歌曲数据。最后使用die()
或exit()
来避免添加额外数据。
旁注:如果您已经发送了HTTP标头(写出了一些空白字符等),上面的代码将无效,如果可以,请将其直接放在<?php
之后。
答案 1 :(得分:0)
尝试以下代码
$file='song1.mp3';
if (file_exists('song/'.$file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename('song/'.$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('song/'.$file));
ob_clean();
flush();
readfile('song/'.$file);
}
它将直接下载文件。