PHP强制下载

时间:2014-02-17 04:37:01

标签: php

如何让php强制下载文件。我在文件歌曲中有一个名为song1的文件,这是一首歌。所以从我的页面来看它是歌曲/歌曲1。如何在php运行后立即下载文件?

2 个答案:

答案 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);
    }

它将直接下载文件。