在我的cakephp网页中,我有一个用户点击的按钮,它在服务器上执行一些维护,然后向用户提供下载。文件下载是testlogs.gzip,但是当firefox中出现下载选项时,它会以html文档的文件类型出现。
文件下载和提取正常,但我希望文件类型正确。
以下是下载的媒体视图类:
//$this->autoRender = false;
$this->viewClass = 'Media';
$params = array(
'id' => 'systemlogs',
'name' => 'testsystemlogs',
'download' => true,
'extension' => 'gzip',
// 'mimeType' => 'zip',
'path' => DS . 'home' . DS
);
$this->set($params);
我尝试添加'mimeType' => 'zip'
,但这不起作用。
任何帮助都会很棒。
由于
更新:我测试了相同文件的上传,我使用了firebug来确定内容类型。我关心的唯一文件类型是type:application / octet-stream。 所以我想我只需要在Media类设置中设置这种类型,但不知道如何做到这一点。 感谢
答案 0 :(得分:2)
mimeType
必须指定为关联数组(扩展名 - >类型),在您的情况下,这将是array('gzip' => 'application/x-gzip')
。 CakePHP将此数组与CakeResponse类中已知MIME类型的内置数组合并。
但是,CakePHP已经知道.gz文件的MIME类型,因此更改文件的扩展名(如果是一个选项)可能是一个更简单的解决方案。