Hello,
bei fread() gibts den fehler 500. das ding wird also als cgi-modul ausgeführt...
Woher der internal Server Error kommt, kann ich dir per Ferndiagnos ohne das ganze Script und sämtliche Einstellungen zu kennen auch nicht sagen, aber warum file() nicht funktioniert, das vermute ich:
Es handelt sich um zwei verschiedene Plattformen, bei denen Textdateien mit unterschiedlichen Zeilenende-Zeichen ausgezeichnet werden. Die automatische Zeilenendeerkennung ist eingeschaltet. Das führt zu einer Transformation der Zeilenendezeichen.
Da Bilder aber nun mal keine Textdateien sind, aber trotzdem #10 oder #13 oder #13#10 enthalten können, machst Du das Bild damit kaputt.
Hier kann man ersatzweise die neuere Funktion
$datei = file_get_contents("Resource_Name");
benutzen, oder
while(!feof($fh))
{
$datei.= fread($fh,128);
}
Die angeforderte Packetgröße bei fread() auf eine entfernte Ressource (jetzt mit 2 s, da deutsch) sollte 576Bytes nicht übersteigen. Woher diese Zahl nun genau kommt, weiß ich auch nicht mehr auswendig.
Versuchs mal so und gib uns eine Rückmeldung, ob es klappt.
Frohes Weihnachtsfest
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen