Php 如何设置头文件以下载文件.apk或.jar?

Php 如何设置头文件以下载文件.apk或.jar?,php,joomla,Php,Joomla,我有一个示例$file是test.zip或test.apk或test.jar $len = filesize($file); $filename = basename($file); ob_end_clean(); JResponse::clearHeaders(); JResponse::setHeader('Pragma', 'public', true); JResponse::setHeader('Expires', '0', true); JResponse::setHeader('C

我有一个示例$file是test.zip或test.apk或test.jar

$len = filesize($file);
$filename = basename($file);
ob_end_clean();
JResponse::clearHeaders();
JResponse::setHeader('Pragma', 'public', true);
JResponse::setHeader('Expires', '0', true);
JResponse::setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
JResponse::setHeader('Content-Type', $file, true);
JResponse::setHeader('Content-Disposition', 'attachment; filename='.$filename.';', true);
JResponse::setHeader('Content-Transfer-Encoding', 'binary', true);
JResponse::setHeader('Content-Length', $len, true);
JResponse::sendHeaders();
echo JFile::read($file);
当读取文件为test.zip时结果正常,但当读取文件
test.apk或test.jar时系统错误,如何设置头来读取此文件(apk,jar)

尝试使用

Content-type: application/jar
Content-type: application/apk
但我认为这行代码是错误的

JResponse::setHeader('Content-Type', $file, true);
可能你必须这样使用

JResponse::setHeader('Content-Type', 'application/jar', true);

内容类型中的setHeader为

'apk' => 'application/vnd.android.package-archive'
'jar' => 'application/java-archive'
更多:

请使用
应用程序/vnd.android.package归档文件
<代码>内容类型:application/apk
不是apk的正确内容类型,它将导致Chrome显示“无法打开文件”错误(Android下载管理器(默认)打开文件取决于正确的内容类型)“apk”=>“application/vnd.Android.package archive”标题不适用于laravel中的php