文件下载错误的文件类型 - CakePHP

时间:2012-08-28 14:01:57

标签: file cakephp download media mime

在我的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类设置中设置这种类型,但不知道如何做到这一点。 感谢

1 个答案:

答案 0 :(得分:2)

mimeType必须指定为关联数组(扩展名 - >类型),在您的情况下,这将是array('gzip' => 'application/x-gzip')。 CakePHP将此数组与CakeResponse类中已知MIME类型的内置数组合并。

但是,CakePHP已经知道.gz文件的MIME类型,因此更改文件的扩展名(如果是一个选项)可能是一个更简单的解决方案。