如何在OpenCart中上传Corel Draw文件



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

在"服务器>设置">中,我在"允许的文件扩展名"下包括了 cdrCDR。此外,我为允许的文件 MIME 类型提供了我可以找到的所有 MIME 类型:

  • 应用程序/CDR
  • 应用程序/科瑞拉
  • 应用程序/X-CDR
  • 应用/X-科瑞拉
  • application/vnd.corel-draw
  • 图像/CDR
  • 图像/通话记录
  • 图片/X-CDR
  • 图像/X-科雷拉图
  • zz-application/zz-winassoc-cdr

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

如果您想通过管理后端的文件管理器执行此操作,您可以制作以下 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"(

我希望这个小脚本有所帮助

干杯杰里米

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

最新更新