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で画像ファイルを検索するため、M2ではpub / media / importになると思います

画像を使用して製品を作成し、データをエクスポートして、csvの値がどのようになる必要があるかを知ることができます


6

"Imported resource (image) could not be downloaded from external resource due to timeout or access permissions"Magento 2.0.0バージョン(Windows 10)で次の形式のcsvファイルを使用してイメージをインポートすると、エラーが表示されました。

私が使ったcsvのフォーマットは以下の通りです>>

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

そして、インポートするファイルセクションのサブセクション画像ファイルディレクトリの下でパスを使用しました /pub/media/import

イメージを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
Isaac

5

これは内部インポートなので、これが問題と関係があるかどうかはわかりませんが、

ではM2私はに保存されているイメージがあるpub/media/importが、同じエラーになるだろう

  1. タイムアウトまたは行のアクセス権限のため、インポートされたリソース(画像)を外部リソースからダウンロードできませんでした:1、2

私はCSVファイルからパス名を削除し、image.jpgスラッシュがない場合と同じように画像のパスを取得しました。


これはあなたのケースに固有のものだと思います。画像はサブディレクトリではなく、ディレクトリ内のディレクトリです。
スティービーG

2

現在、Magento 2.2.6 / 7で作業して
いますが、異なるオペレーティングシステムのディレクトリパスメカニズムのため、同じエラーに直面しました。

仮定することができます画像はパブ/メディア/インポートにある場合:私たちはそのようなパス言及する必要がありますよりも、フォルダ
1.Windowsの /パブ/メディア/インポート- (主にローカルホスト/開発目的のために)
2Ubuntuの(主に運用サーバー用) -パブ/メディア/インポート

ここで1つの余分なスラッシュが問題を引き起こしています。



1

pub / media / importの画像の所有者をWebユーザーに設定することで、同じ問題を修正しました。

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インストールでは、ファイルはユーザー「bitnami」としてFTP経由でアップロードされましたが、このインストールではWebユーザーは「daemon」です。

Bitnamiのインストールですべての所有権を修正するために次のコマンドを実行すると、イメージがインポートされます。Webユーザーがデーモンでない場合は、これを実行しないでください。

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のインストール用ですが、問題の発見に役立つ場合があります。


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

以下は上書きするファイルです。ベンダーファイルの変更は推奨されません。

vendor \ magento \ module-catalog-import-export \ Model \ Import \ Uploader.php

行番号249にジャンプします。つまり、「if($ this-> getTmpDir())」に置き換え、($ this-> getTmpDir()&& strpos($ filePath、$ this-> downloadDir)!== 0)に置き換えます。

すべての画像を「images」フォルダの下のルートディレクトリにコピーします

次にCSVを開き、www.domain.com / images / test.jpgやhttp://127.0.0.1/mage233/images/test.jpgなどの完全なURLを使用して画像を割り当てます。

次に、管理に戻り、「画像ファイルディレクトリ」へのパスを定義せずにこのCSVをアップロードします。

今回は動作するはずです。


0

2.3.5では、パスvar / import / imagesにすでに追加されているようです。画像をこのファイルに移動してから、var / import / imagesパスを画像インポートツールに追加せずにインポートします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.