Datei problem

12/18/2012 16:38 flickz.#1
Ich könnte mal eure Hilfe gebrauchen.
Beschreibung:
Es gibt 2 Server. Einmal von mir und einen von wem anders. Vom anderen Server soll nun eine Temporäre Datei zu meinem gesendet werden. Dazu wird die Datei in Binär umgewandelt und an meinen Server geschickt. Auf meinem Server soll die Datei wieder umgewandelt und in einen Ordner gepackt werden. Bis jetzt funktioniert aber nur das umwandeln in Binär und das übertragen. Habe schon danach bei Google gesucht, allerdings machen die Funktionen nichts, also mir wird nichts zurückgegeben oder mir wird gesagt das der String zu lang ist (was natürlich daran liegt das die Datei ein Bild ist und somit viele Bytes enthält und durch die umwandlung in Binär noch viel mehr). Bräuchte also am besten einfach ne Funktion die auch einen sehr langen Binärcode in einen normalen String umwandelt damit ich daraus wieder eine Datei machen kann (in diesem Fall eine Bilddatei).
12/18/2012 20:59 NotEnoughForYou#2
Generell ist die maximale Größe von einem Script bei PHP >= 5.2 auf 128 mb beschränkt, daran kann es eigentlich ja nicht liegen. Über was für eine Länge reden wir denn ? Und welche Funktionen nutzt du zum Umwandeln in ein Bild ?
12/18/2012 21:43 flickz.#3
Quote:
Originally Posted by NotEnoughForYou View Post
Generell ist die maximale Größe von einem Script bei PHP >= 5.2 auf 128 mb beschränkt, daran kann es eigentlich ja nicht liegen. Über was für eine Länge reden wir denn ? Und welche Funktionen nutzt du zum Umwandeln in ein Bild ?
Die Länge ist eigentlich immer unterschiedlich, aber jedenfalls nie 128 MB groß. Mit Funktionen meinte ich Funktionen aus Google mit n paar Erklärungen, hab ich allerdings nichtmehr im Script drinne.

PHP Code:
$buffer file_get_contents($f);
$length filesize($f);
$_buffer "";
for(
$i 0$i $length$i++) {
    
$_buffer .= sprintf("%08b"ord($buffer[$i]));

Den Code benutze ich zum umwandeln in Binär (jedes byte wird halt in Binär umgewandelt), funktioniert ja auch. Kann ich mir auch alles ausgeben lassen usw. (dauert halt nur etwas) aber ich hab halt keine Ahnung wie ich es dann im anderen Script auf ner anderen Seite wieder umwandel. Von Script1 zu Script2 senden und dann ausgeben funktioniert ja, aber ohne das ganze wieder zu einer Bilddatei machen zu können bringt mir des ganze nichts.
12/18/2012 21:52 NotEnoughForYou#4
Möchtest du das Bild nur anzeigen lassen oder tatsächlich speichern ?

Für erstes wären wohl data URI´s das richtige für dich.
12/18/2012 21:58 flickz.#5
Quote:
Originally Posted by NotEnoughForYou View Post
Möchtest du das Bild nur anzeigen lassen oder tatsächlich speichern ?

Für erstes wären wohl data URI´s das richtige für dich.
Das Bild soll in einem Ordner gespeichert werden und per echo soll dann der Internetlink zum Bild ausgegeben werden der ja dann vom anderen Script ausgelesen wird. Mein einziges Problem ist halt das umwandeln, den Rest krig ich ja selbst hin bzw. funktioniert ja auch schon.
12/18/2012 22:03 NotEnoughForYou#6
PHP Code:
// $path sollte klar sein 
$toSave imagecreatefromstring($binaryCode);
imagejpeg($toSave$path); 
(Ungetestet)

Jenach Bildart (png, gif o.ä) muss man es eben anpassen.
12/18/2012 22:16 flickz.#7
Quote:
Originally Posted by NotEnoughForYou View Post
PHP Code:
// $path sollte klar sein 
$toSave imagecreatefromstring($binaryCode);
imagejpeg($toSave$path); 
(Ungetestet)

Jenach Bildart (png, gif o.ä) muss man es eben anpassen.
"Warning: imagecreatefromstring(): Data is not in a recognized format in..."

PHP Code:
$path "../ordner/test.png";
$ts imagecreatefromstring($binary);
imagepng($ts$path); 
$binary ist das hier: [Only registered and activated users can see links. Click Here To Register...] (zu lang um es hier rein zu kopieren, sind ca. 175kb).
12/18/2012 22:21 NotEnoughForYou#8
Quote:
Originally Posted by flickz. View Post
"Warning: imagecreatefromstring(): Data is not in a recognized format in..."

PHP Code:
$path "../ordner/test.png";
$ts imagecreatefromstring($binary);
imagepng($ts$path); 
$binary ist das hier: [Only registered and activated users can see links. Click Here To Register...] (zu lang um es hier rein zu kopieren, sind ca. 175kb).
ja danke ich weiss was binär ist :P ... ist Binär von deiner Seite aus zwingend notwendig ? über ein base64_encode würde das so nämlich klappen ( hatte mal angenommen, dass das mit binär auch klappt )

#Edit: theoretisch müsstest du ja nur deine Umwandlungsfunc umdrehen und dann über imagecreatefromstring das Bild erzeugen, oder ?
12/18/2012 22:29 flickz.#9
Quote:
Originally Posted by NotEnoughForYou View Post
ja danke ich weiss was binär ist :P ... ist Binär von deiner Seite aus zwingend notwendig ? über ein base64_encode würde das so nämlich klappen ( hatte mal angenommen, dass das mit binär auch klappt )

#Edit: theoretisch müsstest du ja nur deine Umwandlungsfunc umdrehen und dann über imagecreatefromstring das Bild erzeugen, oder ?
Habs jetzt mit Base64 gemacht, funktioniert genau so wie ichs wollte :D