2017-06-06 99 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

完美的作品,謝謝! –