कैसे अनुमति है फ़ाइल प्रकार 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- एडिटर के अंदर अलग-अलग फाइलपेट्स को अपलोड करना संभव बनाता है।
निम्न फ़िलिपेट डिफ़ॉल्ट रूप से उपलब्ध हैं और मॉड्यूल के कॉन्फ़िगरेशन में अनुमत फ़िलेटाइप्स में अतिरिक्त फ़िलेपेट्स जोड़ना संभव है (सामान्य> सामग्री प्रबंधन> 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, जहां उन्होंने एसवीजी को फेविकॉन में हटा दिया था
https://magento.com/security/patches/magento-2016-and-219-security-update
APPSEC-1673Favicon में svg छवियों का उपयोग करके संग्रहीत xss।
जब आप बैकएंड के माध्यम से एसवीजी को अपलोड नहीं कर सकते हैं, तब भी आप उन्हें एफ़टीपी के साथ अपलोड कर सकते हैं और उन्हें संदर्भित कर सकते हैं जैसे आपने उन्हें अपलोड किया था। इस तरह आपको अभी भी एसवीजी का उपयोग करने के लाभ मिलते हैं, लेकिन आपको उपयोगकर्ताओं को उन्हें लोड करने की अनुमति देने के सुरक्षा मुद्दों से निपटने की आवश्यकता नहीं है।
लेकिन अगर आप अभी भी एसवीजी को फेविकॉन / लोगो अपलोड के लिए सक्षम करना चाहते हैं। आप एक कस्टम मॉड्यूल बना सकते हैं और xml नोड्स / php फ़ंक्शंस को ओवरराइड कर सकते हैं जहाँ से इसे निकाला गया था। आप इन्हें नीचे दिए गए अंतर में पा सकते हैं
https://github.com/magento/magento2/compare/2.1.8...2.1.9
निर्भर करता है कि आप एसवीजी अपलोड को कहां सक्षम करना चाहते हैं, यह प्रभावित करेगा कि आपको किन फ़ाइलों को ओवरराइड करना होगा। आप फ़ाइलों आप के लिए एक त्वरित खोज द्वारा संपादित करने की जरूरत है खोजने के लिए सक्षम होना चाहिए 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>
उत्पाद छवियों के लिए एसवीजी फ़ाइलें अनुमति देने के लिए प्लगइन