Ankündigung

Einklappen
Keine Ankündigung bisher.

POST, cUrl und netload

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • POST, cUrl und netload

    Hallo,

    ich bin am Entwickeln einer Upload-Funktion für netload.in und stoße hierbei auf die Grenzen meines Verständnis was die Übertragung oder auch Auswertung von POST-Data angeht.

    <hintergrundwissen>

    netload stellt eine (Upload-) API unter Netload Serious Filehosting - API Documentation zur Verfügung.

    Auf der Upload-API-Seite steht für mich: http://api.netload.in/getserver.php aufrufen, das Ergebnis ist die URL wo POST hingesendet werden soll. GePOSTet wird 'auth' mit dem Authentification Key des Upload Users als value (den gibts hier: Netload Serious Filehosting - Netload); dazu kommt 'modus' => 'file_upload' und 'file' => '/home/user/foo.file' und POST kann gesendet werden.

    Wenn der Upload funktioniert hat, gibts vom Server einen String zurück:
    Code:
    UPLOAD_OK;1MB.qsc;1048576;http://netload.in/dateiHXuGpzzzfw/1MB.qsc.htm;http://netload.in/index.php?id=16&file_id=Am7FMXm1sO1V88Y8xxxxxxxx
    Netload stellt zudem ein PHP-Beispiel-Uploader unter http://api.netload.in/share/scrap/ex...oadapi_php.zip zur Verfügung. Die dort angegebene Lösung mit cUrl will ich jedoch nur verwenden, wenn ich versteh was ich falsch mache und wieso.

    In diesem PHP-Beispiel sind für meine Frage letztlich nur folgende Zeiten und Werte interessant:
    PHP-Code:
            $ch curl_init();
            
    curl_setopt($chCURLOPT_URL$this->uploadURL);
            
    curl_setopt($chCURLOPT_POST1);

            
    curl_setopt($chCURLOPT_POSTFIELDS$this->postParams);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    $postResult curl_exec($ch); 
    wobei $this->uploadURL die POST-Action URL ist und $this->postParams die POST-Data enthält.

    </hintergrundwissen>

    Ich habe bisher mit Snoopy den POST getestet und bekomme immer die Antwort 'prepare_failed', was auf einen Fehler meinerseits oder eine bei Netload gesperrte Datei hinweist.

    Also hab ich mir ein kleines Formular geschrieben, mit dem ich den POST nachmachen wollte; der Code enthält einen gültigen Auth-Key, den Ihr gerne verwenden dürft:
    PHP-Code:
    <?php

    $test 
    false// must be true to see what server sees

    if ($_GET['test'] == '1') {
        echo 
    "GET:<br>";
        
    var_dump($_GET);
        echo 
    "<br><br>POST:<br>";
        
    var_dump($_POST);
        echo 
    "<br><br>FILE:<br>";
        
    var_dump($_FILES);
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
    <head>
        <title>Netload Upload API Test</title>
    </head>
    <body>

    <form action="<?php
    $url 
    $test "?test=1" file_get_contents("http://api.netload.in/getserver.php");
    echo 
    $url;
    ?>" method="post" enctype="multipart/form-data" style="width: 500px; margin: auto;">
        <input type="text" name="auth" value="Ti0lcYEZHqwZUcH2x38FcnrrBKemOBz5" size="50" /><br />
        <input type="file" name="file" size="50" /><br />
        
        <input type="submit" name="modus" value="file_upload" />
    </form>

    </body>
    </html>
    Bei $test = true seh ich auch schön, dass die richtigen Werte mitgesendet werden, bei $test = false (Upload geht an einen netload sever) bekomm ich jedoch 'prepare_failed'.

    Nun meine Frage: Was mach ich mit dem Formular anders als cUrl im Code weiter oben?

    Letztlich sende ich in beiden Fällen einen POST und POST ist POST oder nicht? (Abgesehen von verwendeten boundaries).

    Ich habe bereits versucht auf die API zu verzichten und mit Snoopy mich einzuloggen, die Cookies cookie_user PHPSESSID zu speichern und beim Upload die Upload-form inklusive Cookies gePOSTet - das funktioniert auch, der Upload ist erfolgreich und liefert mir auch auf der Upload-Erfolgreich-Seite die im Account hinterlegte Email-Adresse, jedoch taucht die Datei nicht in Files des Accounts auf. Mit dem IE oder FF tauchen die Files jedoch nach dem Upload in den myFiles auf. Ich hab bereits dem Netload Support geschrieben; dieser hat mich hier zurück auf die API verwiesen und ist nicht näher auf dieses Problem eingegangen.


    Nachdem ich jetzt den 4. Abend+Nacht in Folge an Netload verzweifel, dachte ich mir, frag ich doch mal ein paar kluge Köpfe

    Ich hoffe ihr könnt mir helfen!

    Gruß,
    tobo

    PS: Den Login + Upload für andere OCHs wie rapidshare.com hab ich mit Snoopy im Schnitt in 30 min pro OCH fertig gestellt.

    PPS: Google + Forumsuche waren bis jetzt nicht erfolgreich.
Lädt...
X