При импорте продуктов Magento 2 изображения не импортируются

9

Я импортирую товары, используя встроенный CSV импорт (Система - импорт - товары)

Все мои данные импортированы нормально, но я получаю ошибку "Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in rows: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"

в моем CSS я написал путь base_image как http://mywebsite.ca/pub/media/import/img/hose/jpg/Ach7938.jpg

в качестве теста я удалил структуру папок, отредактировал csv, попробовал это и получил ту же проблему, ту же ошибку http://mywebsite.ca/pub/media/import/Ach7938.jpg

Я попытался записать путь к файлу как /pub/media/import/img/hose/jpg/Ach7938.jpg, но он не позволит мне пройти проверку «проверки данных».

Я подтвердил права на папки и файлы 775

Я использую php 5.6, я пробовал 7, но он сломал весь сайт разными способами, так что это не вариант

В качестве примечания: если я запускаю это 20 раз подряд, весь сайт зависает, и импорт не будет работать снова, пока я не выполню полное восстановление системы (что с этим?)

Могу ли я разместить изображения на другом сервере и ссылаться на них таким образом?

Джастин блейни
источник

Ответы:

7

путь к изображению должен быть примерно таким в csv: Ach7938.jpg

Затем M1 будет искать файл изображения в media / import, поэтому я думаю, что это будет pub / media / import в M2

Вы можете создать продукт с изображением, а затем экспортировать данные, чтобы получить представление о том, каким должно быть значение в CSV.

Дэвид Верхолен
источник
6

Я упоминал об ошибке, "Imported resource (image) could not be downloaded from external resource due to timeout or access permissions"когда я использовал следующий формат файла CSV для импорта изображения в версии Magento 2.0.0 (Windows 10).

Формат CSV, который я использовал, был следующим >>

sku,base_image,errors
WT09-XS-Purple,/pub/media/import/wt09-white_back-test.jpg

и в разделе «Файл для импорта» раздела «Каталог файлов изображений» я использовал путь как /pub/media/import

У меня было изображение для импорта в пабе / медиа / месте импорта

Проблема решена, когда я использовал следующий формат CSV:

"sku","base_image"
"WT09-XS-Purple","wt09-white_back-test.jpg"

и значение файла каталога изображений как pub/media/import введите описание изображения здесь

Проблема на Github: https://github.com/magento/magento2/issues/2666

Мукеш
источник
Начиная с версии Magento 2.3.2 правильное расположение изображений для импорта: <корневая папка Magento> / var / import / images
Исаак
5

Не уверен, что это как-то связано с вашей проблемой, поскольку это внутренний импорт, но:

В M2 я храню изображения, pub/media/importно получаю ту же ошибку

  1. Импортированный ресурс (изображение) не может быть загружен из внешнего ресурса из-за тайм-аута или прав доступа в строках: 1, 2

Я удалил имя пути из моего CSV-файла и просто указал путь к изображению image.jpgбез косых черт, и теперь он отлично работает.

babywit
источник
Я думаю, что это специфично для вашего случая. Ваши изображения находятся в каталоге в каталоге, а не в подкаталоге.
Стиви Джи
2

Сейчас я работаю над Magento 2.2.6 / 7,
и я столкнулся с той же ошибкой, потому что механизм пути к каталогу разных операционных систем.

давайте предположим, что если изображения находятся в папке pub / media / import, мы должны упомянуть следующий путь:
1. в Windows (в основном для локального хоста / в целях разработки) - / pub / media / import
2. в Ubuntu (в основном для производственного сервера) - паб / медиа / импорт

здесь одна дополнительная косая черта вызывает проблему.

Навин Джейн
источник
1

Если вы импортировали с внешним URL-адресом изображения, вы можете увидеть мое исправление .

Я обнаружил, что проблема связана с дублированием пути к изображению после загрузки с внешнего URL-изображения.

Я также создал запрос на получение.

Jokerbase
источник
Это сработало для меня. Не удалось импортировать изображения из внешних URL-адресов в 2.2.7.
Джонни
1

Просто исправили ту же проблему, установив владельца изображений в pub / media / import для веб-пользователя.

В var / log / exception.log я нашел следующее

[2019-06-05 21:02:06] main.CRITICAL: File 'pub/media/import/xxxx.jpg' was not found or has read restriction. {"exception":"[object] (Magento\\Framework\\Exception\\LocalizedException(code: 0): File 'pub/media/import/xxxx.jpg' was not found or has read restriction. at /opt/bitnami/apps/magento/htdocs/vendor/magento/module-catalog-import-export/Model/Import/Uploader.php:209)"} []

При установке Bitnami файлы были загружены через FTP как пользователь 'bitnami', но в этой установке веб-пользователь является 'daemon'

Я запустил следующее, чтобы исправить все права собственности на установку Bitnami, и теперь она импортирует образы. Не запускайте это, если ваш веб-пользователь не демон.

sudo chown -R daemon:daemon /opt/bitnami/apps/magento/htdocs && sudo find . -type d -exec chmod 770 {} \; && sudo find . -type f -exec chmod 660 {} \; && sudo chmod u+x bin/magento-cli``

Хотя это решение предназначено для установки BItnami, оно может помочь найти вашу проблему.

DaveJ
источник
0

Путь к изображению может быть или не быть без /, это не проблема. Я импортировал с обоими, и это сработало. В моем случае проблема заключалась в том, что изображения, указанные в пути, не были доступны в папке. Я пробовал это с импортом доступного и недоступного изображения и получал ошибку в случае, когда это изображение было недоступно. Путь может быть любым, его не нужно использовать pub/media/importтолько.

Шахзаиб Хаят Хан
источник
0

Для проблемы импорта изображений я исправил проблему из Uploader.phpфайла. Измените ниже путь к файлу кода и успешной работы импорта изображений.

Путь к файлу: magento / vendor / magento / module-catalog-import-export / Model / Import / Uploader.php

Find the below line from line number 201:

$ filePath = $ this -> _ directory-> getRelativePath ($ filePath. $ fileName);

Replace with:

$ filePath = strpos ($ filePath, $ fileName)! == false? $ filePath: $ this -> _ directory-> getRelativePath ($ filePath. $ fileName);

Для получения дополнительной информации см. Ссылку на github:

https://github.com/magento/magento2/pull/20761/commits/8612789375b0c173f0ba852c587882af6ff8bc7f

Кирти Нария
источник
0

Я сам столкнулся с этой проблемой, и исправление не имело никакого отношения к формату моего csv или расположению файлов изображений.

То, что вызывало это для меня, было разрешениями для pub/media/importпапки. Кажется, изображения размещаются здесь при загрузке из внешнего источника. Когда система не смогла создать файлы, она отбросила упомянутую проблему.

Чтобы все это исправить, мне нужно было выполнить следующую команду (из pub/mediaпапки):

sudo chmod 777 import

Как только я сделал это, мои товары импортировались без ошибок.

Дэниел Блэк
источник
0

Ниже приводится файл для переопределения, изменение в файле поставщика не рекомендуется.

поставщик \ Magento \ модульно-каталог-импорт-экспорт \ Model \ Import \ Uploader.php

Перейти к строке № 249, то есть здесь "if ($ this-> getTmpDir ())" и заменить ее на ($ this-> getTmpDir () && strpos ($ filePath, $ this-> downloadDir)! == 0)

Скопируйте все изображения в корневой каталог в папку «images»

Теперь откройте CSV и назначьте изображение с полным URL-адресом, таким как www.domain.com/images/test.jpg или http://127.0.0.1/mage233/images/test.jpg.

Теперь вернитесь в Admin и загрузите этот CSV без указания пути к «Каталогу файлов изображений».

На этот раз это должно сработать.

Zuber Bandi
источник
0

Кажется, в 2.3.5 он уже добавляется в путь var / import / images. Переместите ваши изображения в этот файл, затем импортируйте без добавления пути var / import / images в инструмент импорта изображений.

ToweringMeida
источник