[Perl] Controle files andere webserver?

Pagina: 1
Acties:

  • Steenvoorde
  • Registratie: Augustus 1999
  • Laatst online: 20-01 15:09
Ik heb een Perl-script gemaakt dat een maand kalender maakt (in tekst) waarbij elke dag wordt ge-hyperlink-ed naar een bestand op een andere server. De filenames zien er als volgt uit: ddmmyyyy.pdf dus de links worden gegenereerd op datum.

Nu kan het gebeuren dat er een file niet bestaat, door een typfout of omdat de file nooit is aangemaakt. Kan ik in Perl controleren of die gelinkte file uberhaupt bestaat? Zodat ik, afhankelijk of de file bestaat of niet, de hyperlink aan kan maken (of niet).
De gelinkte bestanden staan op een IIS server, en het Perlscript draait op Apache (Slackware).

Alvast bedankt!

Verwijderd

Je zou het kunnen doen dmv een check met http. Met perl een verbinding maken naar poort 80 van IIS en dan "HEAD filenaam.pdf HTTP/1.1\n\n" doen. (voor de zekerheid kun je het best ff de http rfc er bij pakken) Als je een 404 terugkrijgt bestaat het niet en bij een 200 wel. Het zal wel werken, maar een stuk netter zal het zijn als je op je IIS een bestandje hebt waarin alle pdf's staan die bestaan, want dan hoef je maar 1 http request te doen. Van deze oplossing wordt je niet vrolijk als je enkele duizenden bestanden op je IIS hebt staan :)

  • Steenvoorde
  • Registratie: Augustus 1999
  • Laatst online: 20-01 15:09
Hmmm ... ik had 'm eigenlijk in het verkeerde forum gepost. Ik hoor 't wel als 'ie gemoved wordt. :)

Marki: bedankt voor je reactie. Via http zal het idd allemaal te traag gaan. Ik heb zelf een gedeeltelijke oplossing gevonden. Ik heb die dir op de iis-server geshared en gemounted, nu kan ik dus die files via het filesystem benaderen.

Hoe moet ik nu controleren of die files bestaan in Perl?

  • Steenvoorde
  • Registratie: Augustus 1999
  • Laatst online: 20-01 15:09
Laat maar. Ik heb al een methode gevonden:
code:
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl

$file = "test.pdf"

if (-f $file) {
     print "File exists\n";
          }
else {
     print "File not found\n";
     }

  • Steenvoorde
  • Registratie: Augustus 1999
  • Laatst online: 20-01 15:09
En het werkt!

Slotje...

(Best grappig, zo in je eentje lullen ;))