php force下载扩展

时间:2010-07-29 03:08:22

标签: php

我正在尝试强制下载,所以这是我的代码:

$file = 'test.m4r';
$mime = 'audio/aac';
header("Pragma: public"); // required
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header('Content-Description: File Transfer');
header("Content-Type: $mime");
header('Content-Length: ' . filesize($file));          
header('Content-Disposition: attachment; filename=' . basename($file));
readfile($file);

文件扩展名应为.m4r,即使mime是aac。在某些计算机上,它下载为test.m4r,而在其他计算机上,该文件的扩展名为 test.m4r.acc 。我该如何解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以对mimetype撒谎,但除此之外你无能为力。 尝试:

"application/octet-stream"

这可能有效,并且是未知文件类型等的默认设置。

答案 1 :(得分:1)

尝试这个

<?php header("Content-Type: application/force-download"); ?>