php下载文件但获取错误的扩展名

时间:2016-05-16 14:03:03

标签: php download mime-types

我的代码中存在一个无法解决的问题。 在我的Web应用程序上运行脚本后,会创建一个可执行文件,该文件具有MIME类型应用程序/ x可执行文件,并且没有.exe扩展名 问题是,当我尝试下载它时,扩展名更改为application / octet-stream

在ubuntu中,当我右键单击这两个文件(下载的文件和我服务器目录中的原始文件)时,我得到了这个 原始文件:类型:可执行文件(application / x-executable) '下载'一个:类型:二进制(应用程序/八位字节流)

我的下载功能代码如下:

//$filename is the path to the file
public static function filedownload ($filename) 
{

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$type= finfo_file($finfo, $filename);
if ( !file_exists( $filename )) return 'file not found';

header('Content-Description: File Transfer');
header('Content-Type:'.$type);
header('Content-Disposition: attachment; filename='.basename($filename));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header("Cache-Control: no-cache, must-revalidate");
header('Pragma: public');
header('Content-Length:'.filesize($filename));
ob_clean();
flush();
readfile( $filename );
exit;  

}

当我回显$ type时,我得到了预期的application / x-executable类型,但在下载文件后,扩展名不同。

有什么建议吗? 谢谢!

0 个答案:

没有答案