[PHP] Image van url Openen

Pagina: 1
Acties:
  • 282 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 12:59
Er zijn vele topics langsgekomen over dit probleem, in alle topics bloeden dood zonder bevredigend antwoord/oplossing, vandaar dat ik mijn vraag hier maar neer gooi.

Ik wil een afbeelding (routekaart) van een server halen. Via een url wordt de routekaart gegenereerd en wil ik deze ophalen en locaal opslaan.

Welke oplossingen heb ik geprobeerd?

- fopen, fread, fclose
Deze combinatie levert de volgende fout op:
code:
1
[<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory

Overigens lees ik probeer ik het bestand in blokken uit te lezen en open ik hem via rb.

- copy
Ook dit werkt niet
code:
1
[<a href='function.copy'>function.copy</a>]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request


-imagefromjpeg / imagefrompng
Zoals te verwachten viel uit de documentatie, dit werkt helaas ook niet.


Ik heb een vermoeden dat het te maken heeft met de headers, kijkend naar het antwoord van copy(). Overigens werkt de url via IE wel gewoon. Ook kan ik wel xml bestanden vanaf de server laden op mijn eigen server. Het probleem lijkt zich te bevinden in het feit dat er een img wordt opgehaald. Overigens moet het bruikbaar zijn op php4 en php5.


Anyone?

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!

  • veltnet
  • Registratie: Mei 2004
  • Laatst online: 15-09 15:54
file_get_contents($imageurl) zou voldoende moeten zijn. Eventueel in combinatie met is_file($imageurl) om te kijken of het plaatje er echt staat. fopen werkt ook maar biedt in dit geval geen meerwaarde

Als dit niet werk dan moet je in de headers kijken die je krijgt opgestuurd. Misschien wordt er iets geredirect ofzo waardoor je niet met het goede URL verbindt

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

veltnet schreef op vrijdag 28 september 2007 @ 13:41:
file_get_contents($imageurl) zou voldoende moeten zijn. Eventueel in combinatie met is_file($imageurl) om te kijken of het plaatje er echt staat. fopen werkt ook maar biedt in dit geval geen meerwaarde

Als dit niet werk dan moet je in de headers kijken die je krijgt opgestuurd. Misschien wordt er iets geredirect ofzo waardoor je niet met het goede URL verbindt
Als je al een "HTTP/1.1 400 Bad Request" krijgt (getuige de melding die copy geeft ;) ) zal het ook niet met file_get_contents gaan werken (buiten dat het niks meer is dan een fopen/fread actie).

Wat je wellicht kunt doen is met een netwerk sniffer kijken wat er nu precies aan communictie is tussen de servers, wellicht dat je daar wat wijzer van wordt, kan je dat niet dan kan je het wellicht simuleren met een socket.

Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 12:59
Hoe stom het ook klinkt, er stond een spatie in de url.

Ik ging de url die ik samenstelde vergelijken met de url bij een geladen plaatje. Het verschil was een %20 tekentje, welke door IE omgezet is.

Weer 1.5 uur verprutst :P. Bedankt iig!

"Chaos kan niet uit de hand lopen"