用PHP重命名mp3文件和下载文件

时间:2014-02-07 12:31:25

标签: php download

我在PHP下载mp3文件时遇到问题。我需要下载文件,也重命名它。下面是download.php文件,其中包含以下代码:

$file = $_GET['file'];
$flname = explode("/",$file);
$num = sizeof($flname);
$filenme = $flname[$num-1];
$name_of_file = $filenme;

header('Content-Description: File Transfer');
header('Content-type: application/mp3');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Length: '.filesize($name_of_file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

readfile_chunked($file);

function readfile_chunked($file) 
{ 
    $chunksize = 1*(1024*1024); // how many bytes per chunk 
    $buffer = ''; 
    $handle = fopen($filename, 'rb');

    if ($handle === false) 
    { 
        return false; 
    } 

    while (!feof($handle))   
    { 
        $buffer = fread($handle, $chunksize); 
        print $buffer; 
    } 

    return fclose($handle); 
}

我在$file中获取文件路径:

$file = $_GET['file']; 

$file成为:

$file = "localhost/project/mp3 file path";

然后我爆炸它只获取mp3文件名(从而删除路径)。 我不知道问题是什么,但即使文件是1-2MB,它总是在Firefox的下载对话框中显示大约490个字节。谁能解释我做错了什么?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

在文本编辑器中打开下载的文件。它可能包含php错误,它会告诉你究竟发生了什么。这可能是您尝试下载的文件的路径或权限的问题。