fileupload mit fsockopen

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

  • fileupload mit fsockopen

    Hi Leute,

    bitte übt Nachsicht, ich habe schon das Forum soweit durchforstet
    aber leider nix passendes gefunden.

    Folgendes Problem hab ich.
    Ich will einen Fileupload von einen Webserver zu einen anderen machen.
    Soweit so gut ist mein Script folgendes:
    PHP-Code:
    <?php 

    function PostToHost($host$port$path$referer$data_to_send)
    {
         
    $dc 0;
         
    $bo="-----------------------------305242850528394";

         
    $fp fsockopen($host$port$errno$errstr);
         if (!
    $fp) {
             echo 
    "errno: $errno \n";
             echo 
    "errstr: $errstr\n";
             return 
    $result;
         }
         
         
    fputs($fp"POST $path HTTP/1.0\n");
         
    fputs($fp"Host: $host\n");
         
    fputs($fp"Referer: $referer\n");
         
    fputs($fp"User-Agent: Mozilla/4.05C-SGI [en] (X11; I; IRIX 6.5IP22)\n");
         
    fputs($fp"Accept: image/gif, image/x-xbitmap, image/jpeg,image/pjpeg, image/png, */*\n");
         
    fputs($fp"Accept-Charset: iso-8859-1,*,utf-8\n");
         
    fputs($fp"Content-type: multipart/form-data; boundary=$bo\n");

         foreach(
    $data_to_send as $key=>$val) {
             
    $ds =sprintf("--%s\nContent-Disposition: form-data;name=\"%s\"\n\n%s\n"$bo$key$val);
             
    $dc += strlen($ds);
         }
         
    $dc += strlen($bo)+3;
         
    fputs($fp"Content-length: $dc \n");
         
    fputs($fp"\n");

         foreach(
    $data_to_send as $key=>$val) {
             
    $ds =sprintf("--%s\nContent-Disposition: form-data;name=\"%s\"\n\n%s\n"$bo$key$val);
             
    fputs($fp$ds );
         }
         
    $ds "--".$bo."--\n";
         
    fputs($fp$ds);
         
         while(!
    feof($fp)) {
             
    $res .= fread($fp1);
         }
         
    fclose($fp);

         return 
    $res;
    }

    $fa =@file("/home/abel2/www/d7toAutoscout_add.gz");

    $xf="Content-Type: application/x-zip-compressed\n\n"implode(""$fa); 

    $data["import_file\"; filename=\"d7toAutoscout_add.gz"] = $xf// Dateiname des Zip-Archivs

    $x PostToHost("www.meinedomain.at",
                
    80,"/bidgo/api/kd_distribution7.php",
                
    "www.meinedomain.at/bidgo/api/kd_distribution7.php",$data);

    print 
    $x;
    echo 
    "<hr />";
    if (
    strpos($x"HTTP/1.1 200 OK") !== false) {
        print 
    "Ihre Daten wurden zum Import angenommen.";
        
    $MAILTEXT .= "\nDaten wurden zum Import angenommen\n";
    } else{
        print 
    "Fehler beim Import:<hr />".$x;
        
    $MAILTEXT .= "\nFehler beim Import:\n".$x;
    }
    ?>
    Das Script PostToHost werden sicher einige kennen

    Gut soweit wird das File scheinbar an die Datei kd_distribution7.php geliefert.
    Denn mit print_r($HTTP_POST_FILES); bekomme ich folgendes Resultat:

    Array ( [import_file] =>
    Array (
    [name] => d7toAutoscout_add.gz
    [type] =>
    [tmp_name] => /tmp/phpPyLDtv
    [error] => 0
    [size] => 1781
    )
    )

    Jetzt denke ich positiv und mache so weiter wie ich es machen würde,
    wenn das File über ein Formular übermittelt worden wäre.

    PHP-Code:
    $Pfad=$TMP_path.$HTTP_POST_FILES['import_file']['name'];
    if (!
    copy($HTTP_POST_FILES['import_file']['tmp_name'], $Pfad)) 
    {
         echo 
    "Fehler beim Kopieren!";

    Das würde bei Übermittlung mittels Formular auch funktionieren
    und ich hätte mein GZ-File in dem Ordner in dem ich es haben will.
    Der Schmäh:
    Auch über das oben genannte Script wird das GZ-File in den vorgesehenen Ordner kopiert.
    Nur ist es leider Fehlerhaft und kann nicht geöffnet werden.

    So nun meine Frage: Wo bitte liegt da der Hund begraben???
    Ich denke doch, dass ich das File zwar hochgeladen habe
    und anschließend wie sonst auch weiterverarbeiten muss, oder?
    Also eben mit dem copy Befehl,
    die Datei aus dem /tmp in das Verzeichnis kopieren wo ich es hinhaben will.


    Bitte helft mir!
    Herzlichen Dank
    lg.
    Werner
    Zuletzt geändert von web4free; 01.08.2005, 22:39.
    bidgo - Benzin im Blut
    Wir wollen Dich und Deine Karre
    Videoblog & Bilderblog zu verschiedenen Bereichen

  • #2
    hier steht, wie du dein posting lesergerecht formatieren kannst:
    http://www.php-resource.de/forum/sho...threadid=50454

    hier gibt's ein paar ausführliche anleitungen zum thema upload:

    http://www.php-faq.de/q/q-formular-upload-php4.html
    http://de3.php.net/manual/en/features.file-upload.php

    Kommentar


    • #3
      Hi Penizillin,


      Original geschrieben von penizillin
      hier steht, wie du dein posting lesergerecht formatieren kannst:
      http://www.php-resource.de/forum/sho...threadid=50454

      hier gibt's ein paar ausführliche anleitungen zum thema upload:

      http://www.php-faq.de/q/q-formular-upload-php4.html
      http://de3.php.net/manual/en/features.file-upload.php
      Also ich will ja nicht motzen!
      Aber Punkt eins finde ich es nicht gerade toll, mich darauf hinzuweisen wie man Postings verfasst, zumal ich keine "500" Zeilen Code hergeschrieben habe.

      Zum 2. treffen Deine beiden weiteren Links überhaupt nicht das Thema!
      Wie ich einen herkömmlichen Fileupload bewerkstellige, ist mir klar!

      Das Problem ist, wie das File nach einen dem oben gezeigten Script aus dem /temp Ordner fehlerfrei in einen definierten Ordner kopiert werden kann.

      Dennoch danke für die Antwort!
      Ich hoffe das Posting war jetzt Regelkonform
      bidgo - Benzin im Blut
      Wir wollen Dich und Deine Karre
      Videoblog & Bilderblog zu verschiedenen Bereichen

      Kommentar


      • #4
        Original geschrieben von web4free
        Also ich will ja nicht motzen!
        dann lass es doch.
        Aber Punkt eins finde ich es nicht gerade toll, mich darauf hinzuweisen wie man Postings verfasst, zumal ich keine "500" Zeilen Code hergeschrieben habe.
        und wir finden es nicht toll, wenn man auf sticky threads, die noch dazu mit "Erst lesen: Posten von Problemen" betitelt sind, immer noch wieder hinweisen muss.

        und dass es hier konvention ist, dass quelltexte so umgebrochen werden sollen, dass sie bei 1024er bildschrimbreite ohne scrollen lesbar sind, steht da deutlich drin!
        also editiere bitte dein eingangsposting dementsprechend.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Also ich will ja nicht motzen!
          Aber Punkt eins finde ich es nicht gerade toll, mich darauf hinzuweisen wie man Postings verfasst, zumal ich keine "500" Zeilen Code hergeschrieben habe.
          Ich will auch nicht meckern, aber ich glaube er bzw. wir mögen das seitliche Scrollen überhaupt nicht. Er wollte wohl das du das verbesserst. Danke
          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


          • #6
            Ich geb Euch vollkommen Recht,
            es ist ärgerlich immer Jemanden hinzuweisen zu müssen,
            dass sein Beitrag zu sehr in die Breite geht.

            Ich habe den Thread jetzt brav mit Zeilenumbrüchen versehen,
            damit Ihr nicht seitlich scrollen müsst.

            Jammerschade finde ich es,
            anstelle einer Hilfe zu bekommen, zitiert zu werden,
            weil ein Beitrag zu sehr in die Breite gegangen ist.
            Das ist lächerlich.

            Ob mir jetzt noch Jemand eine echte Hilfe anbietet will sei Ihm selbst überlassen.
            Für mich hat sich das Thema hiermit erledigt!

            Es gibt sicherlich auch Foren,
            wo zwar auf solche optischen Fehltritte hingewiesen wird,
            aber im selben Atemzug eine Lösung auf das Problem folgt.
            Dieses dürfte hier scheinbar nicht der Fall sein!

            Vielen Dank und danke für die tolle Hilfe!
            Jetzt weiß ich zumindest was seitliches Scrollen ist.
            bidgo - Benzin im Blut
            Wir wollen Dich und Deine Karre
            Videoblog & Bilderblog zu verschiedenen Bereichen

            Kommentar


            • #7
              Re: fileupload mit fsockopen

              Jaja, machs gut.

              Und wem hier noch was auffällt, der behalte es für sich :
              Original geschrieben von web4free
              Jetzt denke ich positiv und mache so weiter wie ich es machen würde,
              wenn das File über ein Formular übermittelt worden wäre.

              if (!copy($HTTP_POST_FILES['import_file']['tmp_name'], $Pfad))

              Kommentar

              Lädt...
              X