Importing product images from URL problem
I'm trying to import some products from a csv with images that are stored on an external server. The images are saving to the var/import folder ok but they won't assign to the product. I'm using the google logo to test.
The exception.log file says:
main.CRITICAL: File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. {"exception":"[object] (Magento\Framework\Exception\LocalizedException(code: 0): File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. at /home/account/public_html/vendor/magento/module-catalog-import-export/Model/Import/Uploader.php:210)"}
See how it's concatenating the file name twice? What's going on?
The import works fine if I use a local path but goes screwy when I put an external url in the source.
For the record the image source is:
https://www.google.co.uk/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
I've tried the same file on a different installation of 2.3 and got the same result. The same file worked perfectly on 2.2.6
magento2.3
add a comment |
I'm trying to import some products from a csv with images that are stored on an external server. The images are saving to the var/import folder ok but they won't assign to the product. I'm using the google logo to test.
The exception.log file says:
main.CRITICAL: File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. {"exception":"[object] (Magento\Framework\Exception\LocalizedException(code: 0): File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. at /home/account/public_html/vendor/magento/module-catalog-import-export/Model/Import/Uploader.php:210)"}
See how it's concatenating the file name twice? What's going on?
The import works fine if I use a local path but goes screwy when I put an external url in the source.
For the record the image source is:
https://www.google.co.uk/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
I've tried the same file on a different installation of 2.3 and got the same result. The same file worked perfectly on 2.2.6
magento2.3
add a comment |
I'm trying to import some products from a csv with images that are stored on an external server. The images are saving to the var/import folder ok but they won't assign to the product. I'm using the google logo to test.
The exception.log file says:
main.CRITICAL: File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. {"exception":"[object] (Magento\Framework\Exception\LocalizedException(code: 0): File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. at /home/account/public_html/vendor/magento/module-catalog-import-export/Model/Import/Uploader.php:210)"}
See how it's concatenating the file name twice? What's going on?
The import works fine if I use a local path but goes screwy when I put an external url in the source.
For the record the image source is:
https://www.google.co.uk/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
I've tried the same file on a different installation of 2.3 and got the same result. The same file worked perfectly on 2.2.6
magento2.3
I'm trying to import some products from a csv with images that are stored on an external server. The images are saving to the var/import folder ok but they won't assign to the product. I'm using the google logo to test.
The exception.log file says:
main.CRITICAL: File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. {"exception":"[object] (Magento\Framework\Exception\LocalizedException(code: 0): File 'var/import/googlelogo_color_272x92dp.pnggooglelogo_color_272x92dp.png' was not found or has read restriction. at /home/account/public_html/vendor/magento/module-catalog-import-export/Model/Import/Uploader.php:210)"}
See how it's concatenating the file name twice? What's going on?
The import works fine if I use a local path but goes screwy when I put an external url in the source.
For the record the image source is:
https://www.google.co.uk/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
I've tried the same file on a different installation of 2.3 and got the same result. The same file worked perfectly on 2.2.6
magento2.3
magento2.3
edited Dec 28 '18 at 18:01
Denial Design
asked Dec 28 '18 at 17:00
Denial DesignDenial Design
8813
8813
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
I overwrote /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php with the version from 2.2.6 and it worked fine.
add a comment |
I compared both files Magento 2.X and Magento 2.3 and got the issue related to this.
Please open this file /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php
There is missing one condition in function setTmpDir() and here is the missing code with line by line
missing to use
use MagentoFrameworkAppObjectManager; http://prntscr.com/mfvnv8 on line no : 10
missing code on line no 99 to 102
/**
- @var MagentoFrameworkAppFilesystemDirectoryResolver
*/
private $directoryResolver;
- @var MagentoFrameworkAppFilesystemDirectoryResolver
missing code on line no 135
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
missing code on line no 112
- @param MagentoFrameworkAppFilesystemDirectoryResolver|null $directoryResolver
missing to add code in __construct()
MagentoFrameworkAppFilesystemDirectoryResolver $directoryResolver = nullmissing code on line no 134
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
Missing code in line no 294
Old code
public function setTmpDir($path)
{
if (is_string($path) && $this->_directory->isReadable($path)) {
$this->_tmpDir = $path;
return true;
}
return false;
}
- Replace it with below code
public function setTmpDir($path)
{
if (is_string($path)
&& $this->_directory->isReadable($path)
&& $this->directoryResolver->validatePath($this->_directory->getAbsolutePath($path), DirectoryList::ROOT)
) {
$this->_tmpDir = $path;
return true;
}
return false;
}
Hope, This one is useful to understand you why this is not uploading.
Thank you
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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%2f256095%2fimporting-product-images-from-url-problem%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I overwrote /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php with the version from 2.2.6 and it worked fine.
add a comment |
I overwrote /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php with the version from 2.2.6 and it worked fine.
add a comment |
I overwrote /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php with the version from 2.2.6 and it worked fine.
I overwrote /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php with the version from 2.2.6 and it worked fine.
answered Dec 28 '18 at 18:10
Denial DesignDenial Design
8813
8813
add a comment |
add a comment |
I compared both files Magento 2.X and Magento 2.3 and got the issue related to this.
Please open this file /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php
There is missing one condition in function setTmpDir() and here is the missing code with line by line
missing to use
use MagentoFrameworkAppObjectManager; http://prntscr.com/mfvnv8 on line no : 10
missing code on line no 99 to 102
/**
- @var MagentoFrameworkAppFilesystemDirectoryResolver
*/
private $directoryResolver;
- @var MagentoFrameworkAppFilesystemDirectoryResolver
missing code on line no 135
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
missing code on line no 112
- @param MagentoFrameworkAppFilesystemDirectoryResolver|null $directoryResolver
missing to add code in __construct()
MagentoFrameworkAppFilesystemDirectoryResolver $directoryResolver = nullmissing code on line no 134
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
Missing code in line no 294
Old code
public function setTmpDir($path)
{
if (is_string($path) && $this->_directory->isReadable($path)) {
$this->_tmpDir = $path;
return true;
}
return false;
}
- Replace it with below code
public function setTmpDir($path)
{
if (is_string($path)
&& $this->_directory->isReadable($path)
&& $this->directoryResolver->validatePath($this->_directory->getAbsolutePath($path), DirectoryList::ROOT)
) {
$this->_tmpDir = $path;
return true;
}
return false;
}
Hope, This one is useful to understand you why this is not uploading.
Thank you
add a comment |
I compared both files Magento 2.X and Magento 2.3 and got the issue related to this.
Please open this file /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php
There is missing one condition in function setTmpDir() and here is the missing code with line by line
missing to use
use MagentoFrameworkAppObjectManager; http://prntscr.com/mfvnv8 on line no : 10
missing code on line no 99 to 102
/**
- @var MagentoFrameworkAppFilesystemDirectoryResolver
*/
private $directoryResolver;
- @var MagentoFrameworkAppFilesystemDirectoryResolver
missing code on line no 135
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
missing code on line no 112
- @param MagentoFrameworkAppFilesystemDirectoryResolver|null $directoryResolver
missing to add code in __construct()
MagentoFrameworkAppFilesystemDirectoryResolver $directoryResolver = nullmissing code on line no 134
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
Missing code in line no 294
Old code
public function setTmpDir($path)
{
if (is_string($path) && $this->_directory->isReadable($path)) {
$this->_tmpDir = $path;
return true;
}
return false;
}
- Replace it with below code
public function setTmpDir($path)
{
if (is_string($path)
&& $this->_directory->isReadable($path)
&& $this->directoryResolver->validatePath($this->_directory->getAbsolutePath($path), DirectoryList::ROOT)
) {
$this->_tmpDir = $path;
return true;
}
return false;
}
Hope, This one is useful to understand you why this is not uploading.
Thank you
add a comment |
I compared both files Magento 2.X and Magento 2.3 and got the issue related to this.
Please open this file /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php
There is missing one condition in function setTmpDir() and here is the missing code with line by line
missing to use
use MagentoFrameworkAppObjectManager; http://prntscr.com/mfvnv8 on line no : 10
missing code on line no 99 to 102
/**
- @var MagentoFrameworkAppFilesystemDirectoryResolver
*/
private $directoryResolver;
- @var MagentoFrameworkAppFilesystemDirectoryResolver
missing code on line no 135
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
missing code on line no 112
- @param MagentoFrameworkAppFilesystemDirectoryResolver|null $directoryResolver
missing to add code in __construct()
MagentoFrameworkAppFilesystemDirectoryResolver $directoryResolver = nullmissing code on line no 134
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
Missing code in line no 294
Old code
public function setTmpDir($path)
{
if (is_string($path) && $this->_directory->isReadable($path)) {
$this->_tmpDir = $path;
return true;
}
return false;
}
- Replace it with below code
public function setTmpDir($path)
{
if (is_string($path)
&& $this->_directory->isReadable($path)
&& $this->directoryResolver->validatePath($this->_directory->getAbsolutePath($path), DirectoryList::ROOT)
) {
$this->_tmpDir = $path;
return true;
}
return false;
}
Hope, This one is useful to understand you why this is not uploading.
Thank you
I compared both files Magento 2.X and Magento 2.3 and got the issue related to this.
Please open this file /vendor/magento/module-catalog-import-export/Model/Import/Uploader.php
There is missing one condition in function setTmpDir() and here is the missing code with line by line
missing to use
use MagentoFrameworkAppObjectManager; http://prntscr.com/mfvnv8 on line no : 10
missing code on line no 99 to 102
/**
- @var MagentoFrameworkAppFilesystemDirectoryResolver
*/
private $directoryResolver;
- @var MagentoFrameworkAppFilesystemDirectoryResolver
missing code on line no 135
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
missing code on line no 112
- @param MagentoFrameworkAppFilesystemDirectoryResolver|null $directoryResolver
missing to add code in __construct()
MagentoFrameworkAppFilesystemDirectoryResolver $directoryResolver = nullmissing code on line no 134
$this->directoryResolver = $directoryResolver
?: ObjectManager::getInstance()->get(MagentoFrameworkAppFilesystemDirectoryResolver::class);
Missing code in line no 294
Old code
public function setTmpDir($path)
{
if (is_string($path) && $this->_directory->isReadable($path)) {
$this->_tmpDir = $path;
return true;
}
return false;
}
- Replace it with below code
public function setTmpDir($path)
{
if (is_string($path)
&& $this->_directory->isReadable($path)
&& $this->directoryResolver->validatePath($this->_directory->getAbsolutePath($path), DirectoryList::ROOT)
) {
$this->_tmpDir = $path;
return true;
}
return false;
}
Hope, This one is useful to understand you why this is not uploading.
Thank you
answered 8 mins ago
anant prajapatianant prajapati
313
313
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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%2f256095%2fimporting-product-images-from-url-problem%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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
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