Joomla Zoo 下载元素错误 content-type 或 mime-type for vcard (.vcf)
Joomla Zoo download element wrong content-type or mime-type for vcard (.vcf)
我的客户使用的是 Joomla 3.7.2,他们使用的是 YOOTheme 的 Zoo 组件。他们创建了一个应用程序,我相信它被称为行话,并且他们添加了一个 属性(元素),您可以在其中下载文件。
该应用是文章类型的应用,他们使用了默认的下载元素。我添加了上传某些文件的权限,并且我已经上传了一个 VCF 文件(一个 vCard 文件)。
当我下载那个文件时出现问题。 Joomla 似乎添加了 Content-Type: 'text/x-vcalendar'。这应该是 'text/x-vcard'。我不知道在哪里更改它。
我已将此 mime-type 添加到我的 .htaccess,因此当我直接 link 到文件时,apache 会发送正确的内容类型 header。因此我知道问题在于 joomla 或 PHP 函数 returns 错误的 mime 类型。
我在哪里更改这些文件的 mime-type?
终于找到了。文件中有一个函数:/administrator/components/com_zoo/framework/helpers/filesystem.php
在此文件中有一个名为 getMimeMapping 的函数。其中是一个数组,其中包含每个扩展名使用的所有文件扩展名和 mime 类型:
$mimes['vcf'][] = 'text/x-vcalendar';
$mimes['vcs'][] = 'text/x-vcalendar';
$mimes['vct'][] = 'text/x-vcard';
显然,如果我使用扩展名 vct,它将输出正确的内容类型。
我的客户使用的是 Joomla 3.7.2,他们使用的是 YOOTheme 的 Zoo 组件。他们创建了一个应用程序,我相信它被称为行话,并且他们添加了一个 属性(元素),您可以在其中下载文件。
该应用是文章类型的应用,他们使用了默认的下载元素。我添加了上传某些文件的权限,并且我已经上传了一个 VCF 文件(一个 vCard 文件)。
当我下载那个文件时出现问题。 Joomla 似乎添加了 Content-Type: 'text/x-vcalendar'。这应该是 'text/x-vcard'。我不知道在哪里更改它。
我已将此 mime-type 添加到我的 .htaccess,因此当我直接 link 到文件时,apache 会发送正确的内容类型 header。因此我知道问题在于 joomla 或 PHP 函数 returns 错误的 mime 类型。
我在哪里更改这些文件的 mime-type?
终于找到了。文件中有一个函数:/administrator/components/com_zoo/framework/helpers/filesystem.php
在此文件中有一个名为 getMimeMapping 的函数。其中是一个数组,其中包含每个扩展名使用的所有文件扩展名和 mime 类型:
$mimes['vcf'][] = 'text/x-vcalendar';
$mimes['vcs'][] = 'text/x-vcalendar';
$mimes['vct'][] = 'text/x-vcard';
显然,如果我使用扩展名 vct,它将输出正确的内容类型。