如何在OpenCart中上传Corel Draw文件?

时间:2013-09-30 15:04:49

标签: upload opencart coreldraw

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

在系统>设置>服务器,我在允许的文件扩展名下包含 cdr CDR 。另外,我已经为允许的文件Mime类型找到了我能找到的所有MIME类型:

  • application / cdr
  • 应用/ Coreldraw中
  • 应用程序/ x-CDR
  • 应用程序/ x-Coreldraw中
  • 应用/ vnd.corel绘制
  • 图像/ CDR
  • 图像/ CDR
  • 图像/ X-CDR
  • 图像/ X-Coreldraw中
  • ZZ-应用/ ZZ-winassoc-CDR

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

2 个答案:

答案 0 :(得分: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”)

我希望这个小脚本有帮助

干杯 杰里米

答案 1 :(得分:0)

我尝试了以上所有但不起作用。最新的OpenCart 1.5.6.x版本不允许通过图像管理器上载除图像文件之外的任何内容。 “All file Types" extension(它是一个付费的扩展名)工作。但是你需要设置正确的MIME类型的珊瑚文件application / cdr