# Image URL / Pfad

**URL:** <https://forum.shopware.com/t/image-url-pfad/58817>\
**Category:** Programmierung\
**Created:** [28. März 2019 um 14:10 UTC](https://forum.shopware.com/t/image-url-pfad/58817 "2019-03-28T14:10:37Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [28. März 2019 um 14:10 UTC](https://forum.shopware.com/t/image-url-pfad/58817/1 "2019-03-28T14:10:37Z")

</div>

Hi 🙂

ich habe in meinem Controller einen Artikel:

```
$articleResource = \Shopware\Components\Api\Manager::getResource('Article');
$article = $articleResource->getOne($aid);

```

Wie bekomme ich die URL des ersten Bildes? Ich dachte es geht so, aber das funktioiniert nicht:

```
$mediaService = $this->get('shopware_media.media_service');
die($mediaService->getUrl('media/image/'.$article['image'][0]['path'].'.'.$article['image'][0]['extension']));

```

Das gibt mir nur die Domain meines Shops aus.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [28. März 2019 um 14:16 UTC](https://forum.shopware.com/t/image-url-pfad/58817/2 "2019-03-28T14:16:15Z")

</div>

```
->getURL('/media/image/thumbnails/' + name + extension);

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [28. März 2019 um 14:20 UTC](https://forum.shopware.com/t/image-url-pfad/58817/3 "2019-03-28T14:20:25Z")

</div>

Meinst du so?

```
die($mediaService->getUrl('media/image/thumbnails/'.$article['image'][0]['path'].'.'.$article['image'][0]['extension']));

```

Da kommt wieder nur die Domain 😕

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [28. März 2019 um 14:28 UTC](https://forum.shopware.com/t/image-url-pfad/58817/4 "2019-03-28T14:28:13Z")

</div>

Ich meinte es so - bei einem Thumbnail von 200x200:

```
$mediaService = $this->container->get('shopware_media.media_service');
$source = '/media/image/thumbnails/TestArtikel_200x200.jpg';
$image = $mediaService->getUrl( $source );

```

und

```
$article['image'][0]['path']

```

ersetzen mit **NAME**

```
$article['image'][0]['name']

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [28. März 2019 um 14:34 UTC](https://forum.shopware.com/t/image-url-pfad/58817/5 "2019-03-28T14:34:12Z")

</div>

Das mit dem „thumbnails/“ funktioniert bei mir irgendie nicht, allerdings funktioiniert das:

```
die($mediaService->getUrl('/media/image/'.$article['images'][0]['path'].'.'.$article['images'][0]['extension']));

```

ich hatte den / am anfang vergessen und image statt images geschrieben

---

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [28. März 2019 um 14:43 UTC](https://forum.shopware.com/t/image-url-pfad/58817/6 "2019-03-28T14:43:46Z")

</div>

Ich haben gerade rausgefunden, dass das nicht meine Lösung ist. Ich brauche den Pfad auf der Festplatte und nicht die URL für den Browser. 😕 Wie bekomme ich den Pfad?

---

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [29. März 2019 um 11:52 UTC](https://forum.shopware.com/t/image-url-pfad/58817/7 "2019-03-29T11:52:25Z")

</div>

Ich möchte das bild in eine PDF einbauen, dass ich aus dem Kontroller generiere. Daher brauche ich den Pfad des Bildes im Dateisystem. Wie kann ich den bekommen?

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [29. März 2019 um 12:22 UTC](https://forum.shopware.com/t/image-url-pfad/58817/8 "2019-03-29T12:22:30Z")

</div>

Eigentlich sollte der oben erwähnte Code (unter der Angabe von Name und Extention des Bildes, nicht path) auch auf einer lokalen Umgebung funktionieren. Leider kann ich dazu aber nichts sagen, da meine Testumgebungen auf einem realen Server liegt. Mit lokalen Testumgebungen habe ich leider nur schlechte Erfahrung gemacht.

---

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [29. März 2019 um 12:29 UTC](https://forum.shopware.com/t/image-url-pfad/58817/9 "2019-03-29T12:29:04Z")

</div>

Ja, das funktioniert auch, aber es kommt eben eine URL dabei heraus nach diesem Format:

h t t p://domainname.de/pfad/zum/bild . j p g&nbsp;

Ich brauche allerdings soetwas wie: /var/www/foldervonshopware/

Meine Umgebung läuft auf einem Linux-Server, nicht lokal auf meinem PC.

---

<div class="post-metadata">

**Author:** ![hnpw](https://avatars.discourse-cdn.com/v4/letter/h/e0b2c6/32.png) [@hnpw](https://forum.shopware.com/u/hnpw)\
**Post date:** [29. März 2019 um 13:45 UTC](https://forum.shopware.com/t/image-url-pfad/58817/10 "2019-03-29T13:45:57Z")

</div>

ich habe eine Lösung gefunden:

```
private function getImagePath($filename)
{
    $mediaService = $this->get('shopware_media.media_service');
    $image = $mediaService->getUrl('/media/image/'.$filename);
    $path = explode("media",$image);
    return __DIR__.'/../../../../../media'.$path[1];
}

$imgPath = $this->getImagePath($article['images'][0]['path'].'.'.$article['images'][0]['extension']);

```

&nbsp;
