ประเภทไฟล์. svg เกิดข้อผิดพลาดในการอัพโหลดภาพ Magento 2.3.1


8

วิธีการอนุญาตไฟล์ประเภท svg อัพโหลดภาพ magento 2

แสดงใน system.log

main.ERROR: Unsupported image format. File:

/var/www/html/pub/media//logos_1.svg

มีอะไรผิดปกติ?
Savan Patel

โปรดอ้างอิง: magento.stackexchange.com/questions/142139/…
mighty_hk

@mighty_hk ใช่ฉันรู้ แต่ไม่ได้ทำงานให้ฉัน
Savan Patel

ภาพผลิตภัณฑ์ ???
Rk Rathod

คุณจัดการเพื่ออัปโหลด svg หรือไม่ ถ้าใช่โปรดแจ้งให้เราทราบวิธีแก้ปัญหา
Zoya

คำตอบ:


1

โมดูลนี้ทำให้สามารถอัพโหลดประเภทไฟล์ต่าง ๆ ภายใน 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>

และในแบ็กเอนด์กำหนดสิ่งที่คุณต้องการเช่นนี้

ป้อนคำอธิบายรูปภาพที่นี่


เพียงแค่เพิ่มรหัสก็เพียงพอที่จะ di.xml หรือมันจะต้องติดตั้งปลั๊กอินหรือไม่
Zoya

8

เหตุผลที่ 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 / โลโก้

แต่ถ้าคุณยังต้องการเปิดใช้งานการอัปโหลด SVG สำหรับการอัพโหลด favicon / โลโก้ คุณสามารถสร้างโมดูลที่กำหนดเองและแทนที่ฟังก์ชั่น xml nodes / php ที่มันถูกลบออกจาก คุณสามารถค้นหาสิ่งเหล่านี้ได้ใน diff ด้านล่าง

https://github.com/magento/magento2/compare/2.1.8...2.1.9

เปิดใช้งาน SVG ที่อื่น

ขึ้นอยู่กับตำแหน่งที่คุณต้องการเปิดใช้งานการอัปโหลด SVG จะมีผลกับไฟล์ที่คุณต้องการแทนที่ คุณควรจะสามารถค้นหาไฟล์ที่คุณต้องการแก้ไขด้วยการค้นหาอย่างรวดเร็วallowedExtensionsในXMLไฟล์หรือgetAllowedExtensions setAllowedExtensionsในPHPไฟล์


6

เปิดหรือเขียนทับไฟล์และรหัสด้านล่าง <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>


ยังคงไม่ทำงานการตรวจสอบไฟล์ล้มเหลว และฉันพูดถึงฉันใช้ magento 2.3.1 version
Savan Patel

5

เปิดไฟล์ด้านล่าง

/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>

ขอบคุณ Rakesh แต่ก็ยังไม่ทำงาน
Savan Patel

@SavanPatel คุณได้ตรวจสอบเส้นทางธีมของคุณแล้วไฟล์นี้จะถูกแทนที่ไหม? ถ้าแทนที่แล้วรหัสนี้อัพเดทในไฟล์
Rakesh Donga

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.