# REST API Artikel-Import "Could not open file://YYXX.jpg for reading"

**URL:** <https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232>\
**Category:** Programmierung\
**Created:** [25. April 2019 um 09:07 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232 "2019-04-25T09:07:13Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [25. April 2019 um 09:07 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/1 "2019-04-25T09:07:13Z")

</div>

Hallo zusammen,

mein Artikel-Import steht soweit, jedoch wenn ich mit dem Artikel ein Produktbild hochladen will, funktioniert nichts mehr.

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/8/8832d48734005eea301a9ae9dbceb8af6288c7af.png)

```
[...]
  ["images"]=>
  array(1) {
    [1]=>
    array(4) {
      ["main"]=>
      int(1)
      ["position"]=>
      int(1)
      ["link"]=>
      string(41) "file://AL_WASS_P00_P01_preview300.jpg"
      ["description"]=>
      string(6) "Tester"
    }
  }
[...]

```

&nbsp;

Wenn ich dem Artikel manuell ein schon hochgeladenes Bild zuweisen, funktioniert es:

```
[...]
  ["images"]=>
  array(1) {
    [1]=>
    array(4) {
      ["main"]=>
      int(1)
      ["position"]=>
      int(1)
      ["link"]=>
      string(125) "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/FuBK_testcard_vectorized.svg/220px-FuBK_testcard_vectorized.svg.png"
      ["description"]=>
      string(9) "Test-Bild"
    }
  }
[...]

```

&nbsp;

**Kann mir hier jemand bitte weiterhelfen? Ich habe es von mehreren Verzeichnissen aus probiert, jedes mal kommt “could not open file XYZ for reading” mit dem oben aufgeführten Stack-Trace…**

&nbsp;

**Liegt das an dem:**

```
=>
```

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [25. April 2019 um 18:12 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/2 "2019-04-25T18:12:27Z")

</div>

Hallo @ent\_dev‍,

ob ich habe richtig verstanden , du probierst ein Bild von Local zu Shop hochladen.

also gibt keine Möglichkeit um diese zu machen beim API.

beim ‘link’ du kannst ein gultig link/path/ftp , das kann die Funktion [fopen](https://www.php.net/manual/en/function.fopen.php)&nbsp; offnen.

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Mail: [info@enbit.de](mailto:info@enbit.de) | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

---

<div class="post-metadata">

**Author:** ![scriptfarm](https://avatars.discourse-cdn.com/v4/letter/s/2acd7d/32.png) [@scriptfarm](https://forum.shopware.com/u/scriptfarm)\
**Post date:** [25. April 2019 um 18:24 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/3 "2019-04-25T18:24:21Z")

</div>

Man kann auch sauber vorher alle Bilder per FTP hochladen und einfach dem Request den Link oder URL mitgeben.

Gerade bei sehr vielen Artikeln kann man so die Perfomace um längen verbessern.

&nbsp;

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [25. April 2019 um 19:37 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/4 "2019-04-25T19:37:14Z")

</div>

Wenn du file benutzst, musst du einen Absoluten Path angeben

---

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [26. April 2019 um 07:23 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/5 "2019-04-26T07:23:13Z")

</div>

> [@ahmadsaad schrieb:](https://forum.shopware.com/profile/24684/ahmadsaad "ahmadsaad")
> 
> Hallo @ent\_dev‍,
> 
> ob ich habe richtig verstanden , du probierst ein Bild von Local zu Shop hochladen.
> 
> also gibt keine Möglichkeit um diese zu machen beim API.
> 
> beim ‚link‘ du kannst ein gultig link/path/ftp , das kann die Funktion [fopen](https://www.php.net/manual/en/function.fopen.php)&nbsp; offnen.
> 
> VG,
> 
> Tel.: +49 755&nbsp;- 183 990 00 | Mail: [info@enbit.de](mailto:info@enbit.de) | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

Danke für deine Antwort!

&nbsp;

> [@scriptfarm schrieb:](https://forum.shopware.com/profile/21490/scriptfarm "scriptfarm")&nbsp;
> 
> Man kann auch sauber vorher alle Bilder per FTP hochladen und einfach dem Request den Link oder URL mitgeben.
> 
> Gerade bei sehr vielen Artikeln kann man so die Perfomace um längen verbessern.

Danke für die Antwort. Das verstehe ich nicht ganz, die Bilder lade ich vorher via FTP hoch, sie liegen schon auf dem Shopware-Server, soll ich es also über die Media Resource hochladen?

&nbsp;

> [@Shyim schrieb:](https://forum.shopware.com/profile/20792/Shyim "Shyim")
> 
> Wenn du file benutzst, musst du einen Absoluten Path angeben

Also das XML, welches ich abgreife, liegt in einem Import-Ordner und daraus hole ich mir den Pfad.  
Gibt es demnach keinen Weg, bei dem Artikel-Upload parrallell ein Bild hochzuladen?  
Danke für deine Antwort!

---

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [26. April 2019 um 07:52 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/6 "2019-04-26T07:52:26Z")

</div>

> [@scriptfarm schrieb:](https://forum.shopware.com/profile/21490/scriptfarm "scriptfarm")
> 
> Man kann auch sauber vorher alle Bilder per FTP hochladen und einfach dem Request den Link oder URL mitgeben.
> 
> Gerade bei sehr vielen Artikeln kann man so die Perfomace um längen verbessern.

Ich habe es soeben mit „ftp“ versucht und erhalte wieder dieselbe Fehlermeldung, meine Produktbilder liegen im Pfad „/tmp/import/“ …

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [26. April 2019 um 09:01 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/7 "2019-04-26T09:01:49Z")

</div>

> [@ent\_dev schrieb:](https://forum.shopware.com/profile/28777/ent_dev "ent\_dev")
> 
> > [@scriptfarm schrieb:](https://forum.shopware.com/profile/21490/scriptfarm "scriptfarm")
> > 
> > Man kann auch sauber vorher alle Bilder per FTP hochladen und einfach dem Request den Link oder URL mitgeben.
> > 
> > Gerade bei sehr vielen Artikeln kann man so die Perfomace um längen verbessern.
> 
> Ich habe es soeben mit „ftp“ versucht und erhalte wieder dieselbe Fehlermeldung, meine Produktbilder liegen im Pfad „/tmp/import/“ …

&nbsp;

&nbsp;

Du muss ein absolut path oder url beim Api eintragen

---

<div class="post-metadata">

**Author:** ![scriptfarm](https://avatars.discourse-cdn.com/v4/letter/s/2acd7d/32.png) [@scriptfarm](https://forum.shopware.com/u/scriptfarm)\
**Post date:** [26. April 2019 um 09:06 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/8 "2019-04-26T09:06:22Z")

</div>

@ [ent\_dev](https://forum.shopware.com/profile/28777/ent_dev)

Ich hatte das missverstanden, ich dachte Du gibts nur lapidar den Pfad an und dachtest dadurch kommen die Bilder von alleine in den Shop.

Im Grunde sollte es aber funktionieren, erst der FTP Bilder Upload und dann den API Request starten.

Wenn es scheitert, kann es meistens nur an zwei Dingen liegen, entweder der Pfad oder die Benutzer/Schreibrechte passen nicht…

Einige meiner Kunden&nbsp;synchronisieren so alle 5 Stunden über die WaWi mehrere tausende Artikel und Bilder…

Haben denn die hochgeladenen Bilder die selben Benutzerrechte wie auch das Script und probiere mal die URL (sofern von aussen erreichbar) statt den relativen Pfad mitzugeben.

Ausserdem den “kompletten Pfad” mitgeben, lege einfach mal innerhalb des Shopverzeichnis einen Ordner (/media/ **import** / **images** ) an und lade dort die Bilder per FTP rein.

Wenn man zum test einen API Request über den Browser macht, sollte zumindest eine eindeutige Fehlermeldung in der Console zu ermitteln sein.

Eigentlich sollte das so passen und schnell in die Gänge zu bekommen sein…

&nbsp;

---

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [29. April 2019 um 09:24 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/9 "2019-04-29T09:24:38Z")

</div>

> [@scriptfarm schrieb:](https://forum.shopware.com/profile/21490/scriptfarm "scriptfarm")
> 
> @ [ent\_dev](https://forum.shopware.com/profile/28777/ent_dev)
> 
> Ich hatte das missverstanden, ich dachte Du gibts nur lapidar den Pfad an und dachtest dadurch kommen die Bilder von alleine in den Shop.
> 
> Im Grunde sollte es aber funktionieren, erst der FTP Bilder Upload und dann den API Request starten.
> 
> Wenn es scheitert, kann es meistens nur an zwei Dingen liegen, entweder der Pfad oder die Benutzer/Schreibrechte passen nicht…
> 
> Einige meiner Kunden&nbsp;synchronisieren so alle 5 Stunden über die WaWi mehrere tausende Artikel und Bilder…
> 
> Haben denn die hochgeladenen Bilder die selben Benutzerrechte wie auch das Script und probiere mal die URL (sofern von aussen erreichbar) statt den relativen Pfad mitzugeben.
> 
> Ausserdem den „kompletten Pfad“ mitgeben, lege einfach mal innerhalb des Shopverzeichnis einen Ordner (/media/ **import** / **images** ) an und lade dort die Bilder per FTP rein.
> 
> Wenn man zum test einen API Request über den Browser macht, sollte zumindest eine eindeutige Fehlermeldung in der Console zu ermitteln sein.
> 
> Eigentlich sollte das so passen und schnell in die Gänge zu bekommen sein…

@scriptfarm Ich habe nun das Verzeichnis /media/import/images angelegt und sämtliche Produktbilder dort hochgeladen.

Aus dem XML ziehe ich mir den Namen des Produktbild eines Artikels, packe davor den Pfad und erstelle mir so in einer neuen Variablen den gesamten Pfad (Pfad zu images-Ordner + Datei-Namen) und genau da haperts.

&nbsp;

Meine Variable enthält jedes mal den korrekten Pfad, schmeisst aber immer wieder die oben genannte Fehlermeldung. Gebe ich den Pfand so an, ohne Variable, importiert er korrekt…

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [29. April 2019 um 15:05 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/10 "2019-04-29T15:05:01Z")

</div>

Hallo @ent\_dev‍,

kannst du bitte ein Beispiel Pfad oder Xml eintragen.

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Email: [info@enbit.de](mailto:info@enbit.de) | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

---

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [30. April 2019 um 06:19 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/11 "2019-04-30T06:19:51Z")

</div>

Hey @ahmadsaad‍,

```
  ["images"]=>
  array(1) {
    [1]=>
    array(4) {
      ["main"]=>
      int(1)
      ["position"]=>
      int(1)
      ["link"]=>
      string(62) "https://www.xyz.net/media/import/produktbild1.jpg"
      ["description"]=>
      string(13) "Produktbilder"
    }
  }

```

Rufe ich den Pfad im Browser auf, erscheint das Bild, lasse ich es über die API „verknüpfen“ kommt die Fehlermeldung:

Could not open file „XYZ“ for reading

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [30. April 2019 um 07:57 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/12 "2019-04-30T07:57:34Z")

</div>

Hallo @ent\_dev‍,

das ist Kommisch wenn du kannst das Bilde beim Browser offen es darf funktioniert.

also kannst du ein external code schreiben und einfach diese Code anrfufen:

```
fopen('https://www.xyz.net/media/import/produktbild1.jpg', 'rb')

```

und sehe ob gibt ein Fehler dort oder nicht , ob fopen offnen deine URL dann das Fehler mit API ob nicht dann das Fehler beim deine Server oder Ordnen/Datein&nbsp;permission

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Email: [info@enbit.de](mailto:info@enbit.de) | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [30. April 2019 um 08:13 UTC](https://forum.shopware.com/t/rest-api-artikel-import-could-not-open-file-yyxx-jpg-for-reading/59232/13 "2019-04-30T08:13:58Z")

</div>

> [@ahmadsaad schrieb:](https://forum.shopware.com/profile/24684/ahmadsaad "ahmadsaad")
> 
> Hallo @ent\_dev‍,
> 
> ob ich habe richtig verstanden , du probierst ein Bild von Local zu Shop hochladen.
> 
> also gibt keine Möglichkeit um diese zu machen beim API.
> 
> beim ‚link‘ du kannst ein gultig link/path/ftp , das kann die Funktion [fopen](https://www.php.net/manual/en/function.fopen.php)&nbsp; offnen.
> 
> VG,
> 
> Tel.: +49 755&nbsp;- 183 990 00 | Mail: [info@enbit.de](mailto:info@enbit.de) | Web:&nbsp;[http://enbit.de/](http://enbit.de/)

&nbsp;

Hallo @ent_dev

also ich möchte etwas hier korrikieren .

also wie ich habe geunden in das Code, dass gibt ein möglichkeit um die bilde direct von local zu server hochladen.

beim&nbsp;Base64 Bild .

```
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
// dann in deine Api code:

$image['link'] = $base64

```

VG,

Tel.: +49 755&nbsp;- 183 990 00 | Email: [info@enbit.de](mailto:info@enbit.de) | Web:&nbsp;[http://enbit.de/](http://enbit.de/)
