How to restrict allowed catalog image extensions?
I created a module that overrides ImageUploader like so:
<preference
for="MagentoCatalogModelImageUploader"
type="MyCompanyMyModuleModelCatalogImageUploader" />
The code looks like this (don't ask why, but we are only allowing jpg images):
<?php
namespace MyCompanyMyModuleModelCatalog;
class ImageUploader extends MagentoCatalogModelImageUploader {
/**
* @param string $allowedExtensions
*/
public function setAllowedExtensions($allowedExtensions)
{
parent::setAllowedExtensions(['jpg', 'jpeg']);
}
}
I installed the module and the other parts work just fine. But this does not prevent me from uploading a PNG. Anyone have any ideas of what I might be doing wrong or what I should override instead of this?
Thanks!
magento2 module gallery-image
add a comment |
I created a module that overrides ImageUploader like so:
<preference
for="MagentoCatalogModelImageUploader"
type="MyCompanyMyModuleModelCatalogImageUploader" />
The code looks like this (don't ask why, but we are only allowing jpg images):
<?php
namespace MyCompanyMyModuleModelCatalog;
class ImageUploader extends MagentoCatalogModelImageUploader {
/**
* @param string $allowedExtensions
*/
public function setAllowedExtensions($allowedExtensions)
{
parent::setAllowedExtensions(['jpg', 'jpeg']);
}
}
I installed the module and the other parts work just fine. But this does not prevent me from uploading a PNG. Anyone have any ideas of what I might be doing wrong or what I should override instead of this?
Thanks!
magento2 module gallery-image
add a comment |
I created a module that overrides ImageUploader like so:
<preference
for="MagentoCatalogModelImageUploader"
type="MyCompanyMyModuleModelCatalogImageUploader" />
The code looks like this (don't ask why, but we are only allowing jpg images):
<?php
namespace MyCompanyMyModuleModelCatalog;
class ImageUploader extends MagentoCatalogModelImageUploader {
/**
* @param string $allowedExtensions
*/
public function setAllowedExtensions($allowedExtensions)
{
parent::setAllowedExtensions(['jpg', 'jpeg']);
}
}
I installed the module and the other parts work just fine. But this does not prevent me from uploading a PNG. Anyone have any ideas of what I might be doing wrong or what I should override instead of this?
Thanks!
magento2 module gallery-image
I created a module that overrides ImageUploader like so:
<preference
for="MagentoCatalogModelImageUploader"
type="MyCompanyMyModuleModelCatalogImageUploader" />
The code looks like this (don't ask why, but we are only allowing jpg images):
<?php
namespace MyCompanyMyModuleModelCatalog;
class ImageUploader extends MagentoCatalogModelImageUploader {
/**
* @param string $allowedExtensions
*/
public function setAllowedExtensions($allowedExtensions)
{
parent::setAllowedExtensions(['jpg', 'jpeg']);
}
}
I installed the module and the other parts work just fine. But this does not prevent me from uploading a PNG. Anyone have any ideas of what I might be doing wrong or what I should override instead of this?
Thanks!
magento2 module gallery-image
magento2 module gallery-image
asked yesterday
Tony DeStefano
1165
1165
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Take a look at vendor/magento/module-catalog/etc/di.xml
<virtualType name="MagentoCatalogCategoryImageUpload" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<item name="png" xsi:type="string">png</item>
</argument>
</arguments>
</virtualType>
In this case, we need to override MagentoCatalogCategoryImageUpload
, not MagentoCatalogModelImageUploader
.
Our custom class will be the virtual type class. So, we need to re-inject the dependencies.
Your di.xml
should be:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference
for="MagentoCatalogCategoryImageUpload"
type="VendorModuleModelCatalogImageUploader" />
<virtualType name="VendorModuleModelCatalogImageUploader" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<!--<item name="png" xsi:type="string">png</item>-->
</argument>
</arguments>
</virtualType>
</config>
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
@TonyDeStefano I'm pretty sure my solution will work. We need to overrideMagentoCatalogCategoryImageUpload
, should not useMagentoCatalogModelImageUploader
.
– Khoa TruongDinh
1 hour ago
I didn't suggest to useMagentoCatalogModelImageUploader
. I'm suggesting to useMagentoCatalogCategoryImageUpload
. Take a look at mydi.xml
carefully.
– Khoa TruongDinh
1 hour ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f256688%2fhow-to-restrict-allowed-catalog-image-extensions%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Take a look at vendor/magento/module-catalog/etc/di.xml
<virtualType name="MagentoCatalogCategoryImageUpload" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<item name="png" xsi:type="string">png</item>
</argument>
</arguments>
</virtualType>
In this case, we need to override MagentoCatalogCategoryImageUpload
, not MagentoCatalogModelImageUploader
.
Our custom class will be the virtual type class. So, we need to re-inject the dependencies.
Your di.xml
should be:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference
for="MagentoCatalogCategoryImageUpload"
type="VendorModuleModelCatalogImageUploader" />
<virtualType name="VendorModuleModelCatalogImageUploader" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<!--<item name="png" xsi:type="string">png</item>-->
</argument>
</arguments>
</virtualType>
</config>
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
@TonyDeStefano I'm pretty sure my solution will work. We need to overrideMagentoCatalogCategoryImageUpload
, should not useMagentoCatalogModelImageUploader
.
– Khoa TruongDinh
1 hour ago
I didn't suggest to useMagentoCatalogModelImageUploader
. I'm suggesting to useMagentoCatalogCategoryImageUpload
. Take a look at mydi.xml
carefully.
– Khoa TruongDinh
1 hour ago
add a comment |
Take a look at vendor/magento/module-catalog/etc/di.xml
<virtualType name="MagentoCatalogCategoryImageUpload" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<item name="png" xsi:type="string">png</item>
</argument>
</arguments>
</virtualType>
In this case, we need to override MagentoCatalogCategoryImageUpload
, not MagentoCatalogModelImageUploader
.
Our custom class will be the virtual type class. So, we need to re-inject the dependencies.
Your di.xml
should be:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference
for="MagentoCatalogCategoryImageUpload"
type="VendorModuleModelCatalogImageUploader" />
<virtualType name="VendorModuleModelCatalogImageUploader" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<!--<item name="png" xsi:type="string">png</item>-->
</argument>
</arguments>
</virtualType>
</config>
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
@TonyDeStefano I'm pretty sure my solution will work. We need to overrideMagentoCatalogCategoryImageUpload
, should not useMagentoCatalogModelImageUploader
.
– Khoa TruongDinh
1 hour ago
I didn't suggest to useMagentoCatalogModelImageUploader
. I'm suggesting to useMagentoCatalogCategoryImageUpload
. Take a look at mydi.xml
carefully.
– Khoa TruongDinh
1 hour ago
add a comment |
Take a look at vendor/magento/module-catalog/etc/di.xml
<virtualType name="MagentoCatalogCategoryImageUpload" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<item name="png" xsi:type="string">png</item>
</argument>
</arguments>
</virtualType>
In this case, we need to override MagentoCatalogCategoryImageUpload
, not MagentoCatalogModelImageUploader
.
Our custom class will be the virtual type class. So, we need to re-inject the dependencies.
Your di.xml
should be:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference
for="MagentoCatalogCategoryImageUpload"
type="VendorModuleModelCatalogImageUploader" />
<virtualType name="VendorModuleModelCatalogImageUploader" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<!--<item name="png" xsi:type="string">png</item>-->
</argument>
</arguments>
</virtualType>
</config>
Take a look at vendor/magento/module-catalog/etc/di.xml
<virtualType name="MagentoCatalogCategoryImageUpload" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<item name="png" xsi:type="string">png</item>
</argument>
</arguments>
</virtualType>
In this case, we need to override MagentoCatalogCategoryImageUpload
, not MagentoCatalogModelImageUploader
.
Our custom class will be the virtual type class. So, we need to re-inject the dependencies.
Your di.xml
should be:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference
for="MagentoCatalogCategoryImageUpload"
type="VendorModuleModelCatalogImageUploader" />
<virtualType name="VendorModuleModelCatalogImageUploader" type="MagentoCatalogModelImageUploader">
<arguments>
<argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
<argument name="basePath" xsi:type="string">catalog/category</argument>
<argument name="allowedExtensions" xsi:type="array">
<item name="jpg" xsi:type="string">jpg</item>
<item name="jpeg" xsi:type="string">jpeg</item>
<item name="gif" xsi:type="string">gif</item>
<!--<item name="png" xsi:type="string">png</item>-->
</argument>
</arguments>
</virtualType>
</config>
edited 22 hours ago
answered 22 hours ago
Khoa TruongDinh
20.9k63884
20.9k63884
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
@TonyDeStefano I'm pretty sure my solution will work. We need to overrideMagentoCatalogCategoryImageUpload
, should not useMagentoCatalogModelImageUploader
.
– Khoa TruongDinh
1 hour ago
I didn't suggest to useMagentoCatalogModelImageUploader
. I'm suggesting to useMagentoCatalogCategoryImageUpload
. Take a look at mydi.xml
carefully.
– Khoa TruongDinh
1 hour ago
add a comment |
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
@TonyDeStefano I'm pretty sure my solution will work. We need to overrideMagentoCatalogCategoryImageUpload
, should not useMagentoCatalogModelImageUploader
.
– Khoa TruongDinh
1 hour ago
I didn't suggest to useMagentoCatalogModelImageUploader
. I'm suggesting to useMagentoCatalogCategoryImageUpload
. Take a look at mydi.xml
carefully.
– Khoa TruongDinh
1 hour ago
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
I'm on 2.1.6 and the MagentoCatalogCategoryImageUpload class does not exist. I did try your suggestion using MagentoCatalogModelImageUploader class, but that didn't work. I am now attempting to override MagentoMediaStorageModelFileUploader and seem to be making more progress there. Thanks for the tips though. It got me looking into some different places.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
Yep, overriding MagentoMediaStorageModelFileUploader worked perfectly.
– Tony DeStefano
10 hours ago
@TonyDeStefano I'm pretty sure my solution will work. We need to override
MagentoCatalogCategoryImageUpload
, should not use MagentoCatalogModelImageUploader
.– Khoa TruongDinh
1 hour ago
@TonyDeStefano I'm pretty sure my solution will work. We need to override
MagentoCatalogCategoryImageUpload
, should not use MagentoCatalogModelImageUploader
.– Khoa TruongDinh
1 hour ago
I didn't suggest to use
MagentoCatalogModelImageUploader
. I'm suggesting to use MagentoCatalogCategoryImageUpload
. Take a look at my di.xml
carefully.– Khoa TruongDinh
1 hour ago
I didn't suggest to use
MagentoCatalogModelImageUploader
. I'm suggesting to use MagentoCatalogCategoryImageUpload
. Take a look at my di.xml
carefully.– Khoa TruongDinh
1 hour ago
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f256688%2fhow-to-restrict-allowed-catalog-image-extensions%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown