Bilddatei an PHP Skript übergeben

  • Aloha!

    Schon ne weile her aber da ich AutoIt mal wieder ausgekramt habe :part:

    Folgendes:

    Ich möchte eine Bilddatei(Jpg) per POST-Data an ein PHP-Skript übergeben... so weit so gut.. das ganze klappt auch.. nur scheiterts daran das Ganze auf der anderen Seite beim zurückschreiben in eine Datei.

    ...das blöde Dateiformat...

    hatte ein bissel rumgesucht und dachte da an die PHP-Funktion "pack()"... allerdings brauch ich dafür wohl irgendeine art von Info wie Autoit den String codiert hat oder so??

    Hochladen tu ich das ganze über die HTTP-UDF und 2 Zusatzfunktionen die ich mir wo per Google rausgefischt hab.


    hatte schon versucht daran ein wenig rumzuspielen... ohne erfolg offenbar...

    Spoiler anzeigen


    der eine oder andere vermutet vielleicht? das in der Datei auf dem Server dann nur etwas wie folgendes in der Datei als Text steht:

    0xFFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B.....


    rauskommen soll natürlich eigentlich der gute alte zusammengematschte "Maschinencode"... also eine Bilddatei die ich mir einfach ansehen kann..

    ich hoffe das ich hier damit richtig bin da ich an der Quelle der Bilddatei ansetzen wollte und in nem PHP-Forum mit AutoIt vlt. niemand was anfangen kann...

    FTP ist in diesem zusammenhang übrigends leider keine Alternative für mich

    grüße

    - sgtigram

  • rauskommen soll natürlich eigentlich der gute alte zusammengematschte "Maschinencode"... also eine Bilddatei die ich mir einfach ansehen kann..

    Maschinencode hat absolut nichts mit Bilddateien zu tun. Das was du siehst sind die Bytes die in die Datei geschrieben werden.

    Der Code den du hast könntest du in AutoIt z.B. mit FileOpen 16+1 und einem FileWrite des Strings ganz normal abspeichern, solche Methoden sollte es auch für Php geben.

    Dein String beinhaltet die Byterepräsentation der Datei, wenn du das 0x abhackst und jedes Byte einzeln (FF, D8, FF, FE, ...) einzeln (im Binär bzw. Bytemodus!) in die Datei schreibst,

    dann sollte deine Datei auch am Ende anzeigbar sein.

    Die Funktion pack hast du schon richtig erkannt und das Format sollte "C" sein. Wenn ich pack("C", 0x48); nutze, dann kriege ich ein H zurück, und das ist richtig.

    Du könntest die gesamte Datei auch einfach base64-encoden (dafür gibts UDFs) und dann im Php-Backend mit file_put_contents('filename.jpg', base64_decode($data)); abspeichern.