首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OpenCart中上传Corel绘图文件?

如何在OpenCart中上传Corel绘图文件?
EN

Stack Overflow用户
提问于 2013-09-30 15:04:48
回答 2查看 2.2K关注 0票数 2

我的OpenCart商店中的客户要求通过使用upload File选项从产品页面上传Corel绘图文件(.cdr)。这是一个默认不支持的文件类型扩展名,我还不能合并它。我到目前为止所做的事:

在System > Settings > Server中,我在允许的文件扩展名下包括了cdrCDR。此外,我已经为允许的File类型放置了可以找到的所有MIME类型:

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

不幸的是,当我试图上传一个Corel X6 cdr文件时,X6仍然会返回“无效扩展类型”。我还试图合并.torrent文件(使用同样的方法--只是为了测试--而且它成功了),所以我相信上传.cdr文件的答案已经接近了。

EN

回答 2

Stack Overflow用户

发布于 2013-10-20 19:44:30

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

代码语言:javascript
复制
<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>

这也会将文件管理器中的上传限制提高到3Mb (以前是300 to )。

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

我希望这个小剧本能帮上忙

为杰里米干杯

票数 2
EN

Stack Overflow用户

发布于 2014-09-03 03:10:37

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19097590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档