HTTP Dll - Datei hochladen

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • HTTP Dll - Datei hochladen

    Guten Abend Community,
    ich sitz schon die ganze Zeit an einem Problem, welches ich nicht gelöst kriege. :pinch:

    Ich arbeite momentan an einem Spiel, wo man selbst Levels erstellen kann und sie auch auf meinem Webspace hochladen kann.
    Ich hab schon mithilfe eines Tutorials geschafft, eine Datei durch den Webbrowser hochzuladen.

    Der Code fürs hochladen sieht so aus:

    PHP-Quellcode

    1. <?php
    2. if ($_GET[post] == "true")
    3. {
    4. $uploadFile = '/var/www/.../'.$_FILES['userfile']['name'];
    5. if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadFile))
    6. {
    7. echo("Die Datei wurde erfolgreich heruntergeladen.");
    8. }
    9. else
    10. {
    11. echo("Die Datei wurde leider nicht hochgeladen.");
    12. }
    13. }
    14. ?>
    Alles anzeigen

    Allerdings möchte ich das gleiche im GM erreichen.
    Mit der HTTP Dll sei es möglich.
    Ich hab es auch schon versucht, war aber erfolglos.

    Der Code fürs hochladen beim GM:

    GML-Quellcode

    1. http_init()
    2. http_add_post("test.txt")
    3. http_request("glowdragon.de","/.../index.php?post=true")
    4. http_free()
    Ich denke, dass es an Zeile 2 liegt, da ich nicht weis, was da hinkommen könnte. :S

    Hoffe ihr könnt mir helfen.
  • Dateiuploads sind mit der DLL nicht möglich. Du kannst höchstens den Inhalt der Datei im GM einlesen und mit http_add_post als POST übertragen, womit du den Inhalt der Datei in PHP dann mit der $_POST Variable auslesen kannst und nach Wunsch in eine Datei schreiben kannst. Allerdings werden auf diese Weise nur Textdateien unterstützt, bedingt durch GM, der nicht mit Binärdaten umgehen kann. Oder du benutzt einfach eine andere DLL, die Dateiuploads unterstützt.
  • Also die Datein welche ich hochlade, enthalten Codes wie instance_create(...) usw. sie sind also nicht verschlüsselt. Würde das gehen?

    EDIT: Danke, hat geklappt. :thumbsup:

    Die Lösung

    Der Code fürs hochladen in PHP:

    PHP-Quellcode

    1. <?php
    2. $file_name = $_POST[file_name];
    3. $file_text = $_POST[file_text];
    4. $file = fopen($file_name,"w");
    5. fwrite($file,$file_text);
    6. fclose($file);
    7. ?>

    Der Code fürs hochladen in GML:

    GML-Quellcode

    1. file = file_text_open_read("test.txt")
    2. file_name = get_string("Wie soll das Level öffentlich heißen?","")
    3. file_text = ""
    4. do
    5. {
    6. line_text = file_text_read_string(file)
    7. file_text_readln(file)
    8. file_text += line_text
    9. }
    10. until line_text = ""
    11. file_text_close(file)
    12. http_init()
    13. http_add_post("file_name",file_name)
    14. http_add_post("file_text",file_text)
    15. http_request("glowdragon.de","/.../upload.php")
    16. http_free()
    Alles anzeigen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Glow Dragon ()

  • Benutzer online 1

    1 Besucher