Autor Thema: wie prüfen ob Bild an Server liegt ?  (Gelesen 7740 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
wie prüfen ob Bild an Server liegt ?
« am: Oktober 16, 2011, 11:27:06 »
Hallo,

Ich habe vom Verlag Bilder zur Verfügung gestellt bekommen, die nach dem EAN-Code benannt sind.
z.B. 9783772428449.jpg
Diese Bilder habe ich nach 2 Größen (Normal- und Zoomansicht) formatiert und auf den Server gelegt.

Im Shop habe ich die EAN-Codes der Artikel eingetragen.
Die Bilder binde ich jetzt so ein:

<!--spmacro:module(show)
sub lightboximg {
my $index = $_[0];
my $anzahl = $_[1];
if ($index <= $anzahl) {
  my $ean = ssp::get_var_article("EAN",$index);
  my $img = "http://www.woll-insel.at/TOPP/" . $ean . ".jpg";
  my $zoom = "http://www.woll-insel.at/TOPP/zoom/" . $ean . ".jpg";
  my $text = ssp::get_var_article("ARTNR",$index);
  if (length($ean)) {
main::mprint qq|<img style="height: 100px; width: auto;margin-right:10px;" src="$img">
<div style="position:relative; margin-top: -22px;"><a href="$zoom" rel="lightbox[roadtrip]" title="$text">
<img style="width:20px; height: 20px;" src="../images/zoom.jpg" alt="zoom" border="0" /></a>
</div>|;
}
}
return 0;
}
-->

Das Problem ist jetzt, dass es zwar seeehr viele Bilder gibt die ich *nicht* brauche aber nicht alle Bilder - die ich brauche - zu allen Artikeln im Shop.
Der EAN-Code ist aber eingetragen was dann dazu führt, dass die Lightbox ewig nach solchen Bildern sucht aber sie nicht findet.
Die Bedingung
  if (length($ean)) { }
nutz also in diesem Fall nichts sondern müsste
  if (Bild ist am Server vorhanden) { }
sein.

Wie kann ich das abfragen?

Linkback: https://www.shoppilot.net/pf/index.php?topic=1560.0
mfG
dobra

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
ERLEDIGT: wie prüfen ob Bild an Server liegt ?
« Antwort #1 am: Oktober 16, 2011, 11:38:56 »
google hat mir verraten wie's geht  8)

falls das mal jemand braucht
if (Bild ist am Server vorhanden) { ... }  kann man so abfragen:

my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
 
my $response = $ua->get($img);
 
  if ($response->is_success) { ... }

Nachtrag:
  es funktioniert zwar - aber schadet scheinbar der Perfomance :(
Seintenaufbau stark verzögert

Gibt es eine bessere Möglichkeit?
« Letzte Änderung: Oktober 16, 2011, 13:53:16 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: wie prüfen ob Bild an Server liegt ?
« Antwort #2 am: Oktober 17, 2011, 00:07:11 »
Sollte so gehen:

if (-e("/TOPP/" . $ean . ".jpg")) {
  ## vorhanden
}
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: wie prüfen ob Bild an Server liegt ?
« Antwort #3 am: Oktober 17, 2011, 10:36:20 »
Hallo ahe,

funktioniert  :D

(.... vorausgesetzt man verwendet den korrekten UNIX-Pfad ;)  - Danke für den Hinweis)


xx
Testen, ob ein Gutschein im WK liegt

Begonnen von admin

0 Antworten
5764 Aufrufe
Letzter Beitrag März 09, 2010, 11:00:07
von admin
xx
Gutschein - Eingabe prüfen?

Begonnen von dobra

2 Antworten
6387 Aufrufe
Letzter Beitrag Mai 28, 2010, 10:42:08
von admin
xx
Eingabe Hausnummer prüfen

Begonnen von catwoman

4 Antworten
3288 Aufrufe
Letzter Beitrag Mai 25, 2021, 22:08:01
von catwoman
xx
Bei Artikelnummerdirekteingabe Packungsgröße und Mindestmenge per AJAX prüfen

Begonnen von admin

0 Antworten
6103 Aufrufe
Letzter Beitrag Mai 05, 2013, 17:27:28
von admin