2017-06-06 68 views
2

我用这个修改允许PDF文件上传到Magento的 https://magento.stackexchange.com/a/155950/40025后Magento的1.9 SUPEE-9767允许PDF上传不工作 - 无效的MIME类型

应用SUPEE-9767上传不工作后,得到了消息“无效Mime类型“

如何允许在SUPEE-9767补丁后上传PDF?

+0

根据贴片分析这里介绍[链接](https://magento.stackexchange.com/questions/176871/security-patch-supee-9767-possible-issues)的补丁修改上传工具。所以读一下,你可能会得到一些线索。 –

回答

0

有一个新的验证添加到uplaodeFile函数(app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php),即使将<pdf>1</pdf>添加到CMS浏览器后也不允许PDF上传扩展节点。

这里是新的验证

$uploader->addValidateCallback(
     Mage_Core_Model_File_Validator_Image::NAME, 
     Mage::getModel('core/file_validator_image'), 
     'validate' 
    ); 

的文件类型此附加验证检查类

Mage_Core_Model_File_Validator_Image 

下面定义的是,可以通过所见即所得的插上传允许的图像类型的列表图像操作。

IMAGETYPE_JPEG,IMAGETYPE_GIF, IMAGETYPE_JPEG2000, IMAGETYPE_PNG, IMAGETYPE_ICO, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM

所以,基本上为了让PDF上传

  1. 扩展Mage_Core_Model_File_Validator_Image ::验证,并添加自定义逻辑允许PDF上传
  2. 创建一个允许PDF上传的新扩展。
+0

新的SUPEE-9767验证的问题在于,无论是否插入链接,媒体或图像,它似乎都应用了图像验证。 例如,你现在还如果您尝试并上传使用“插入/编辑嵌入媒体”所见即所得按钮.mov文件,因为它经过相同的验证击中“MIME类型无效”错误。 理想的修复大概是只有通过新的验证推上传,如果一个上传图片? –

1

继Rakesh的答案,你可能会延长\程序\代码的validate()函数\本地\法师\核心\型号\从

   imagedestroy($img); 
       imagedestroy($image); 
       return null; 
      } else { 
       throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.')); 
      } 
     } 
    } 

文件\验证\ Image.php
   imagedestroy($img); 
       imagedestroy($image); 
       return null; 
      } else { 
       throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.')); 
      } 
     } 
    } else { 
     if (mime_content_type($filePath)=='application/pdf') { 
      $fileType = IMAGETYPE_PNG;   
      return null; 
     }    
     throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.').' '.mime_content_type($filePath)); 
    } 

在Magento CE 1.9.2.4中测试。在德国的扩展答案你可以找到here

6

我创建了一个模块来帮助解决问题。希望它能帮助那些遇到同样问题的人。

Ash_PdfUploadAfterSupee9767 on Github

覆盖:

  • Mage_Core_Model_File_Validator_Image(跳过验证如果mime类型是application/pdf
  • Mage_Cms_Model_Wysiwyg_Images_Storage(跳过调整大小如果mime类型是application/pdf
  • 添加pdf到的阵列allowedimage_allowed从第ËMage_Cms/etc/config.xml
+0

完美的作品,谢谢! –