Làm thế nào để cho phép các loại tập tin svg tải lên hình ảnh magento 2
Hiển thị trong system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
Làm thế nào để cho phép các loại tập tin svg tải lên hình ảnh magento 2
Hiển thị trong system.log
main.ERROR: Unsupported image format. File:
/var/www/html/pub/media//logos_1.svg
Câu trả lời:
Mô-đun này cho phép tải lên các kiểu tệp khác nhau bên trong trình soạn thảo WYSIWYG.
Các kiểu tệp sau đây có sẵn theo mặc định và có thể thêm các kiểu tệp bổ sung vào các kiểu tệp được phép trong cấu hình của mô-đun (Chung> Quản lý nội dung> Tùy chọn WYSIWYG> Kiểu tệp được phép bổ sung):
Word (doc, docm, docx)
Excel (csv, xml, xls, xlsx)
PDF (pdf)
Compressed Folder (zip, tar)
https://github.com/experius/Magento-2-Module-Experius-WysiwygDoads
Bạn có thể chỉnh sửa di.xml và thêm mã sau
<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>
và trong phần phụ trợ thiết lập những gì bạn cần như thế này
Lý do SVG bị vô hiệu hóa trong Magento 2 theo mặc định, là vì lý do bảo mật, chẳng hạn như XSS được lưu trữ. Và tôi sẽ khuyên bạn nên để chúng bị vô hiệu hóa ít nhất cho đến khi chúng tôi có được sự vệ sinh tốt hơn cho chúng.
Bạn có thể thấy một ví dụ về điều này APPSEC-1673
, nơi họ đã loại bỏ các SVG trong favicon
https://magento.com/security/patches/magento-2016-and-219-security-update
APPSEC-1673
Lưu trữ xss bằng cách sử dụng hình ảnh svg trong Favicon.
Mặc dù bạn không thể tải lên SVG thông qua phần phụ trợ, bạn vẫn có thể tải chúng lên bằng FTP và tham chiếu chúng như thể bạn đã tải chúng lên. Bằng cách này, bạn vẫn nhận được những lợi ích của việc sử dụng SVG nhưng bạn không phải đối phó với các vấn đề bảo mật khi cho phép người dùng tải chúng.
Nhưng nếu bạn vẫn muốn kích hoạt tải lên SVG để tải lên favicon / logo. Bạn có thể tạo một mô-đun tùy chỉnh và ghi đè các nút xml / hàm php nơi nó bị xóa khỏi đó. Bạn có thể tìm thấy những điều này trong khác biệt dưới đây
https://github.com/magento/magento2/compare/2.1.8...2.1.9
Phụ thuộc vào nơi bạn muốn kích hoạt tải lên SVG sẽ ảnh hưởng đến những tập tin bạn sẽ cần ghi đè. Bạn sẽ có thể tìm thấy các tệp bạn cần chỉnh sửa bằng cách tìm kiếm nhanh allowedExtensions
trong XML
các tệp hoặc getAllowedExtensions
setAllowedExtensions
trong PHP
tệp.
mở HOẶC ghi đè bên dưới tập tin và mã <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>
Nếu bạn sử dụng phiên bản magento 2.3 bên dưới, mã silde sẽ thay đổi. Thay thế mã ở trên <item name="svg" xsi:type="string">text/html</item>
Để<item name="svg" xsi:type="number">1</item>
Mở tập tin bên dưới
/vendor/magento/module-cms/etc/di.xml
Thêm tiện ích mở rộng bạn muốn cho phép
<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>
Plugin cho phép tập tin SVG cho hình ảnh sản phẩm