วิธีการอนุญาตไฟล์ประเภท svg อัพโหลดภาพ magento 2
แสดงใน system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
วิธีการอนุญาตไฟล์ประเภท svg อัพโหลดภาพ magento 2
แสดงใน system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
คำตอบ:
โมดูลนี้ทำให้สามารถอัพโหลดประเภทไฟล์ต่าง ๆ ภายใน WYSIWYG-editor
ประเภทไฟล์ต่อไปนี้มีให้ใช้งานตามค่าเริ่มต้นและเป็นไปได้ที่จะเพิ่มประเภทไฟล์เพิ่มเติมให้กับประเภทไฟล์ที่อนุญาตในการกำหนดค่าของโมดูล (ทั่วไป> การจัดการเนื้อหา> ตัวเลือก WYSIWYG> ประเภทไฟล์ที่อนุญาตพิเศษ):
Word (doc, docm, docx)
Excel (csv, xml, xls, xlsx)
PDF (pdf)
Compressed Folder (zip, tar)
https://github.com/experius/Magento-2-Module-Experius-WysiwygDownloads
คุณสามารถแก้ไข di.xml และเพิ่มรหัสติดตาม
<item name="allowed" xsi:type="array">
<item name="svg" xsi:type="string">image/svg</item>
</item>
<item name="image_allowed" xsi:type="array">
<item name="svg" xsi:type="string">image/svg</item>
</item>
<item name="media_allowed" xsi:type="array">
<item name="svg" xsi:type="string">image/svg</item>
</item>
และในแบ็กเอนด์กำหนดสิ่งที่คุณต้องการเช่นนี้
เหตุผลที่ SVG ถูกปิดการใช้งานใน Magento 2 โดยค่าเริ่มต้นสำหรับเหตุผลด้านความปลอดภัยเช่น XSS ที่เก็บไว้ และฉันขอแนะนำให้คุณปล่อยให้พวกเขาปิดการใช้งานอย่างน้อยตอนนี้จนกว่าเราจะได้รับการฆ่าเชื้อที่ดีขึ้นสำหรับพวกเขา
คุณสามารถดูตัวอย่างของสิ่งนี้ได้ในAPPSEC-1673
ที่ที่พวกเขานำ SVG ออกใน favicon
https://magento.com/security/patches/magento-2016-and-219-security-update
APPSEC-1673
xss ที่จัดเก็บโดยใช้ภาพ svg ใน Favicon
แม้ว่าคุณจะไม่สามารถอัปโหลด SVG ผ่านทางแบ็กเอนด์คุณยังสามารถอัปโหลดด้วย FTP และอ้างอิงพวกเขาราวกับว่าคุณอัปโหลดแล้ว วิธีนี้คุณยังคงได้รับประโยชน์จากการใช้ SVG แต่คุณไม่ต้องจัดการกับปัญหาด้านความปลอดภัยในการอนุญาตให้ผู้ใช้โหลดได้
แต่ถ้าคุณยังต้องการเปิดใช้งานการอัปโหลด SVG สำหรับการอัพโหลด favicon / โลโก้ คุณสามารถสร้างโมดูลที่กำหนดเองและแทนที่ฟังก์ชั่น xml nodes / php ที่มันถูกลบออกจาก คุณสามารถค้นหาสิ่งเหล่านี้ได้ใน diff ด้านล่าง
https://github.com/magento/magento2/compare/2.1.8...2.1.9
ขึ้นอยู่กับตำแหน่งที่คุณต้องการเปิดใช้งานการอัปโหลด SVG จะมีผลกับไฟล์ที่คุณต้องการแทนที่ คุณควรจะสามารถค้นหาไฟล์ที่คุณต้องการแก้ไขด้วยการค้นหาอย่างรวดเร็วallowedExtensions
ในXML
ไฟล์หรือgetAllowedExtensions
setAllowedExtensions
ในPHP
ไฟล์
เปิดหรือเขียนทับไฟล์และรหัสด้านล่าง <item name="svg" xsi:type="string">text/html</item>
/vendor/magento/module-cms/etc/di.xml
<type name="Magento\Cms\Model\Wysiwyg\Images\Storage">
<arguments>
<argument name="extensions" xsi:type="array">
<item name="allowed" xsi:type="array">
......
<item name="svg" xsi:type="string">text/html</item>
......
</item>
<item name="image_allowed" xsi:type="array">
......
<item name="svg" xsi:type="string">text/html</item>
......
</item>
<item name="media_allowed" xsi:type="array">
......
<item name="svg" xsi:type="string">text/html</item>
......
</item>
</argument>
</arguments>
</type>
หากคุณใช้เวอร์ชั่นต่ำกว่า magento 2.3 การเปลี่ยนแปลงรหัส silde เปลี่ยนรหัสข้างต้น<item name="svg" xsi:type="string">text/html</item>
ในการ<item name="svg" xsi:type="number">1</item>
เปิดไฟล์ด้านล่าง
/vendor/magento/module-cms/etc/di.xml
เพิ่มส่วนขยายของคุณที่คุณต้องการอนุญาต
<item name="svg" xsi:type="number">1</item>
<argument name="extensions" xsi:type="array">
<item name="allowed" xsi:type="array">
<item name="jpg" xsi:type="number">1</item>
<item name="jpeg" xsi:type="number">1</item>
<item name="png" xsi:type="number">1</item>
<item name="gif" xsi:type="number">1</item>
<item name="svg" xsi:type="number">1</item>
</item>
<item name="image_allowed" xsi:type="array">
<item name="jpg" xsi:type="number">1</item>
<item name="jpeg" xsi:type="number">1</item>
<item name="png" xsi:type="number">1</item>
<item name="gif" xsi:type="number">1</item>
</item>
<item name="media_allowed" xsi:type="array">
<item name="flv" xsi:type="number">1</item>
<item name="swf" xsi:type="number">1</item>
<item name="avi" xsi:type="number">1</item>
<item name="mov" xsi:type="number">1</item>
<item name="rm" xsi:type="number">1</item>
<item name="wmv" xsi:type="number">1</item>
</item>
</argument>
ปลั๊กอินสำหรับอนุญาตให้ใช้ไฟล์ SVG สำหรับภาพผลิตภัณฑ์