我用這個修改允許PDF文件上傳到Magento的 https://magento.stackexchange.com/a/155950/40025後Magento的1.9 SUPEE-9767允許PDF上傳不工作 - 無效的MIME類型
應用SUPEE-9767上傳不工作後,得到了消息「無效Mime類型「
如何允許在SUPEE-9767補丁後上傳PDF?
我用這個修改允許PDF文件上傳到Magento的 https://magento.stackexchange.com/a/155950/40025後Magento的1.9 SUPEE-9767允許PDF上傳不工作 - 無效的MIME類型
應用SUPEE-9767上傳不工作後,得到了消息「無效Mime類型「
如何允許在SUPEE-9767補丁後上傳PDF?
有一個新的驗證添加到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上傳
新的SUPEE-9767驗證的問題在於,無論是否插入鏈接,媒體或圖像,它似乎都應用了圖像驗證。 例如,你現在還如果您嘗試並上傳使用「插入/編輯嵌入媒體」所見即所得按鈕.mov文件,因爲它經過相同的驗證擊中「MIME類型無效」錯誤。 理想的修復大概是隻有通過新的驗證推上傳,如果一個上傳圖片? –
繼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。
我創建了一個模塊來幫助解決問題。希望它能幫助那些遇到同樣問題的人。
Ash_PdfUploadAfterSupee9767 on Github
覆蓋:
Mage_Core_Model_File_Validator_Image
(跳過驗證如果mime類型是application/pdf
)Mage_Cms_Model_Wysiwyg_Images_Storage
(跳過調整大小如果mime類型是application/pdf
)pdf
到的陣列allowed
和image_allowed
從第ËMage_Cms/etc/config.xml
完美的作品,謝謝! –
根據貼片分析這裏介紹[鏈接](https://magento.stackexchange.com/questions/176871/security-patch-supee-9767-possible-issues)的補丁修改上傳工具。所以讀一下,你可能會得到一些線索。 –