2

我的 OpenCart 商店中的客户已请求使用上传文件选项从产品页面上传 Corel Draw 文件 (.cdr) 的功能。这是默认情况下不支持的文件类型扩展名,我还无法合并它。到目前为止我所做的:

在 System > Settings > Server 中,我在Allowed File Extensions下包含了cdrCDR。此外,我已经为Allowed File Mime Types提供了所有我能找到的 MIME 类型:

  • 应用程序/cdr
  • 应用程序/coreldraw
  • 应用程序/x-cdr
  • 应用程序/x-coreldraw
  • 应用程序/vnd.corel-draw
  • 图像/cdr
  • 图像/CDR
  • 图像/x-cdr
  • 图像/x-coreldraw
  • zz-应用程序/zz-winassoc-cdr

不幸的是,当我尝试上传 Corel Draw X6 cdr 文件时,OpenCart 仍会返回“无效的扩展类型”。我还尝试合并 .torrent 文件(使用相同的方法 - 仅用于测试 - 它有效),所以我相信上传.cdr文件的答案很接近。

4

2 回答 2

2

如果您想通过管理后端中的文件管理器执行此操作,您可以制作以下 vqmod 脚本并将其保存在您的 xml 文件夹中...这将允许您将 cdr 文件添加到您的站点中以进行下载或链接或任何其他操作通过您的文件管理器...

<modification>
<id>CDR File Uploader</id>
<version>1.2</version>
<vqmver>2.1.5</vqmver>
<author>Jeremy Fisk</author>
<file name="admin/controller/common/filemanager.php">
    <operation>
        <search position="before"><![CDATA[if (isset($this->request->get['image'])) {]]></search>
        <add><![CDATA[$ext = strrchr($this->request->get['image'], '.');
            if(strtolower($ext) == '.cdr') {
                $this->request->get['image'] = 'cdr_icon.png';
            }]]></add>
    </operation>
    <operation>
        <search position="after"><![CDATA['.jpg',]]></search>
        <add><![CDATA['.cdr',]]></add>
    </operation>
    <operation error="skip"><!-- 1.5.0.x - 1.5.1.2 only -->
        <search position="replace"><![CDATA[$this->model_tool_image->resize(substr($file, strlen(DIR_IMAGE)), 100, 100)]]></search>
        <add><![CDATA[(strtolower($ext) == '.cdr') ? $this->model_tool_image->resize('pdf_icon.png', 100, 100) : $this->model_tool_image->resize(substr($file, strlen(DIR_IMAGE)), 100, 100)]]></add>
    </operation>
    <operation error="skip"><!-- 1.5.1.3 only -->
        <search position="replace"><![CDATA[$this->model_tool_image->resize(utf8_substr($file, strlen(DIR_IMAGE)), 100, 100)]]></search>
        <add><![CDATA[(strtolower($ext) == '.cdr') ? $this->model_tool_image->resize('pdf_icon.png', 100, 100) : $this->model_tool_image->resize(utf8_substr($file, strlen(DIR_IMAGE)), 100, 100)]]></add>
    </operation>
    <operation>
        <search position="replace"><![CDATA[300000]]></search>
        <add><![CDATA[3000000]]></add>
    </operation>
    <operation>
        <search position="after"><![CDATA['image/jpeg',]]></search>
        <add><![CDATA[                'application/octet-stream',]]></add>
    </operation>
</file>
<file name="admin/language/english/common/filemanager.php">
    <operation>
        <search position="replace"><![CDATA[300kb]]></search>
        <add><![CDATA[3MB]]></add>
    </operation>
</file>

这也会将您在文件管理器 n opencart 中的上传限制增加到 3Mb(以前是 300Kb)

您需要将 cdr 图标的 png 文件保存在默认图像位置(称为“cdr_icon.png”)

我希望这个小脚本有帮助

干杯杰里米

于 2013-10-20T19:44:30.243 回答
0

我尝试了以上所有方法,但它不起作用。最新的 OpenCart 1.5.6.x 版本不允许通过图像管理器上传图像文件以外的任何内容。“所有文件类型”扩展(它的付费扩展)工作。但是,您需要设置正确的 MIME 类型的珊瑚文件 application/cdr

于 2014-09-03T03:10:37.113 回答