Upload mit PHP /curl

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

  • Upload mit PHP /curl

    Hi,

    ich brauche zwei Skripte:

    1. Ein Skript, welches ein binäres von der Festplatte an eine http-URL Postet

    2. ein zweites, welches diese gepostete Datei entgegennimmt und irgendwo auf den Server schreibt.

    Mein bisheriger Ansatz zu 1. sieht so aus:

    PHP-Code:
    function curl_upload($src$dest)
        {
           
    $fn basename($src);
           
    $ch curl_init();

            
    $fp fopen($src,"r");
           
    curl_setopt($chCURLOPT_UPLOAD1);
           
    curl_setopt($chCURLOPT_TIMEOUT300);
           
    curl_setopt($chCURLE_OPERATION_TIMEOUTED300);
           
    curl_setopt($chCURLOPT_URL$dest);
               
    curl_setopt($chCURLOPT_INFILE$fp);
           
    curl_setopt($chCURLOPT_INFILESIZEfilesize($src));
             
    curl_exec($ch);
             
    fclose ($fp);
           
    $errorMsg '';
           
    $errorMsg curl_error($ch);
           
    $errorNumber curl_errno($ch);
           
    curl_close($ch);
           return 
    $errorNumber;
        } 

    Wie komme ich aber an die Datei in Skript nummer 2 ????

    Stehe irgendwie auf dem Schlauch.

    Gruß
    Jens
    http://www.NoteStore.de
    http://www.diaet-community.de
    http://www.jensn.de
    http://www.KinderFlohmarkt.de

  • #2
    Du kanst von der Festplatte des Benutzers doch nix auslesen.....

    Zu 2.: Schau dir mal $_FILES an ... move_uploaded_file() ist auch interessant
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Du hast das falsch verstanden.
      Skript Nummer 1 wird per Batch lokal auf einem Rechner aufgerufen.
      Script Nummer 2 läuft auf einem Webserver.
      Trotzdem danke für den Hinweis...

      Gruß
      Jens
      http://www.NoteStore.de
      http://www.diaet-community.de
      http://www.jensn.de
      http://www.KinderFlohmarkt.de

      Kommentar


      • #4
        Da hat Shurakai recht, $_FILES und move_uploaded_file() ist da sehr nützlich

        Kommentar


        • #5
          also print_r($_FILES) ergibt nichts.
          Vom Zeitverhalten lädt Skript 1 eine Datei (dauert ca. 10 Sekunden), allerdings weiss ich nun nicht,wie ich in Skript 3 drauf zugreife...

          Jens
          http://www.NoteStore.de
          http://www.diaet-community.de
          http://www.jensn.de
          http://www.KinderFlohmarkt.de

          Kommentar


          • #6
            Dann machst du im ersten Script was falsch, ich kenn mich aber mit curl leider nicht aus ...


            Normal, wenn du es über ein Formular hochlädst kommst du so drauf:

            $_FILES['namedesfeldes'][.....]

            Siehe: http://de2.php.net/features.file-upload

            Kommentar


            • #7
              Hae es gerade selbst geköst.
              Skrupt 1 muss wie folgt aussehen (falls jemand mal das gleiche Problem in Zukunft hat ....)

              PHP-Code:

                        $src 
              "test.mpg";

                     
              $ch curl_init();

                     
              $post['file'] = "@$src";

                      
              $fp fopen($src,"r");
                     
              curl_setopt($chCURLOPT_TIMEOUT300);
                     
              curl_setopt($chCURLE_OPERATION_TIMEOUTED300);
                     
              curl_setopt($chCURLOPT_URL$dest);
                     
              curl_setopt($chCURLOPT_INFILESIZEfilesize($src));
                          
              curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
                     
              curl_exec($ch);
                     
              curl_close($ch); 


              Gruß
              Jens
              http://www.NoteStore.de
              http://www.diaet-community.de
              http://www.jensn.de
              http://www.KinderFlohmarkt.de

              Kommentar

              Lädt...
              X