फ़ाइल प्रकार .svg छवि अपलोड में त्रुटि मैगेंटो 2.3.1


8

कैसे अनुमति है फ़ाइल प्रकार svg छवि अपलोड Magento 2

System.log में दिखाएं

main.ERROR: Unsupported image format. File:

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

कुछ गलत है क्या?
सावन पटेल

कृपया देखें: magento.stackexchange.com/questions/142139/…
mighty_hk

@mighty_hk हाँ, मुझे पता है, लेकिन मेरे लिए काम नहीं
सावन पटेल

उत्पाद छवियों ???
आरके राठौड़

क्या आपने svg अपलोड करने का प्रबंधन किया है? यदि हाँ, तो कृपया मुझे इसका समाधान बताएं
ज़ोया

जवाबों:


1

यह मॉड्यूल WYSIWYG- एडिटर के अंदर अलग-अलग फाइलपेट्स को अपलोड करना संभव बनाता है।

निम्न फ़िलिपेट डिफ़ॉल्ट रूप से उपलब्ध हैं और मॉड्यूल के कॉन्फ़िगरेशन में अनुमत फ़िलेटाइप्स में अतिरिक्त फ़िलेपेट्स जोड़ना संभव है (सामान्य> सामग्री प्रबंधन> 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 के लिए पर्याप्त है या क्या प्लगइन को भी स्थापित करना आवश्यक है?
जोया

8

SVG का डिफ़ॉल्ट रूप से Magento 2 में अक्षम होने का कारण, संग्रहीत XSS जैसे सुरक्षा कारणों से है। और मैं आपको सलाह दूंगा कि आप उन्हें अभी तक कम से कम तब तक के लिए छोड़ दें, जब तक कि हम उनके लिए बेहतर स्वच्छता न पा लें।

आप इसका एक उदाहरण देख सकते हैं APPSEC-1673, जहां उन्होंने एसवीजी को फेविकॉन में हटा दिया था

https://magento.com/security/patches/magento-2016-and-219-security-update

APPSEC-1673 Favicon में svg छवियों का उपयोग करके संग्रहीत xss।

जब आप बैकएंड के माध्यम से एसवीजी को अपलोड नहीं कर सकते हैं, तब भी आप उन्हें एफ़टीपी के साथ अपलोड कर सकते हैं और उन्हें संदर्भित कर सकते हैं जैसे आपने उन्हें अपलोड किया था। इस तरह आपको अभी भी एसवीजी का उपयोग करने के लाभ मिलते हैं, लेकिन आपको उपयोगकर्ताओं को उन्हें लोड करने की अनुमति देने के सुरक्षा मुद्दों से निपटने की आवश्यकता नहीं है।

Favicon / Logo अपलोड के लिए SVG अपलोड सक्षम करें

लेकिन अगर आप अभी भी एसवीजी को फेविकॉन / लोगो अपलोड के लिए सक्षम करना चाहते हैं। आप एक कस्टम मॉड्यूल बना सकते हैं और xml नोड्स / php फ़ंक्शंस को ओवरराइड कर सकते हैं जहाँ से इसे निकाला गया था। आप इन्हें नीचे दिए गए अंतर में पा सकते हैं

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

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 संस्करण का उपयोग करता हूं
सावन पटेल

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>

धन्यवाद राकेश लेकिन अभी भी काम नहीं कर रहा है
सावन पटेल

@SavanPatel आपने अपनी थीम पथ इस फ़ाइल को ओवरराइड कर लिया है? यदि ओवरराइड होता है तो फाइल में यह कोड अपडेट होता है
राकेश डोंगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.