frank: 'download' von einem anderen server (auch als *netcopy* bekannt)

hallo zusammen ,

ich möchte gerne aus dem browser eine verbindung zu einem fremden server herstellen und eine dort befindliche datei 'auslesen' , besser gesagt kopieren .

allerdings keine text-datei , sondern ein mp3-file ! fopen() und fread() funktioniert nur unzureichend . aber irgendwie so müßte es doch gehen , oder ???

wer weiß mehr ?

liebe grüße - frank

  1. korrigiere: 'upload' natürlich !!!

    1. korrigiere: 'upload' natürlich !!!

      Wenns der Datei-UPLOAD nicht will:
       <form ENCTYPE="MULTIPART/FORM-DATA" ....> wird gerne vergessen. Nur dann wird die Datei auch mitgesendet, sonst nur der Dateiname (mit dem der Server nichts anfangen kann, weil er damit die Datei nicht kriegt).

      Wenn die Datei erstmal oben ist, kann PHP einfach drauf zugreifen und sie an die richtige Position auf dem Server verschieben.

      - Sven Rautenberg

  2. hallo zusammen ,

    ich möchte gerne aus dem browser eine verbindung zu einem fremden server herstellen und eine dort befindliche datei 'auslesen' , besser gesagt kopieren .

    dann musst du alt auf dem 'fremden server' ein script installieren.
    anders wird das nicht gehen.
    das wäre ja auch übel, wenn man per http auf fremden server auf datei-system zugreifen könnte!!!

    martin

    1. hallo zusammen ,

      ich möchte gerne aus dem browser eine verbindung zu einem fremden server herstellen und eine dort befindliche datei 'auslesen' , besser gesagt kopieren .

      dann musst du alt auf dem 'fremden server' ein script installieren.
      anders wird das nicht gehen.
      das wäre ja auch übel, wenn man per http auf fremden server auf datei-system zugreifen könnte!!!

      martin

      doch , es funktioniert :

      bei www.besonic.com wird dieses verfahren zum upload angeboten . ich gebe einen pfad an : http://www.meinserver.de/meinlied.mp3 , und der schnackelt sich den rüber ! kein scheiss :)

      irgendwie geht das , der server muß wohl anonyme zugriffe zulassen , aber das ist offenbar nicht unüblich !

      danke trotzdem - frank

      1. bei www.besonic.com wird dieses verfahren zum upload angeboten .

        bei bei www.besonic.com wird ein kript liegen, dass die angegeben datei über http liest, so wie du mit deinem browser!

        unter MS ISS gibt es dafür eine xml-erweiterung mit der man zumindest text-files auslesen kann.

        :mehr weiß ich leider auch nicht!

        gruss martin

        1. Joho, <-- das ist eine Begruessung

          bei bei www.besonic.com wird ein kript liegen, dass die angegeben
          datei über http liest, so wie du mit deinem browser!

          unter MS ISS gibt es dafür eine xml-erweiterung mit der man
          zumindest text-files auslesen kann.

          :mehr weiß ich leider auch nicht!

          Wenn du keine Ahnung hast, sei bitte still. Das ist grober Unfug, den
          du da erzaehlst.

          Denk daran, dass hier auch Anfaenger mitlesen, denen du so Mist
          vermittelst.

          Gruss,
           CK

    2. Joho,  <-- das ist eine Begruessung

      dann musst du alt auf dem 'fremden server' ein script
      installieren. anders wird das nicht gehen.
      das wäre ja auch übel, wenn man per http auf fremden server auf
      datei-system zugreifen könnte!!!

      Das ist natuerlich Quatsch. Die Datei muss nur im Webroot liegen,
      dann kannst du sie ganz normal per HTTP auslesen -- entweder mit
      dem fopen-wrapper:

      $file = '';
      $fd = fopen("http://url/file","r");
      while(!feof($fd))
       {
        $file .= fread($fd,1024);
       }

      oder per Sockets:

      $sock = fsockopen("server",80);
      fputs($sock,"GET /path/file HTTP/1.1\nHost: host\nConnection: close\n\n");

      $file   = '';
      $header = 0;
      $pre    = '';
      while(!feof($sock))
       {
        $line = fgets($sock,1024);

      /* sollte eine zeile laenger als 1024 zeichen sein,
           wird sie beim nexten durchgang weitergelesen */
        if(!preg_match('\012\015|\012|\015$'))
         {
          $pre .= $line;
          continue;
         }

      /* zeile ist komplett */
        $pre = '';

      /* header und content sind durch eine leerzeile
           getrennt voneinander */
        if(preg_match('!^\s*$!',$line))
          $header = 1;

      if($header = 0)
          continue;

      /* nicht mehr im header, also ists die file */
        $file .= $line;
       }

      Da muesste man natuerlich noch eine Fehlerbehandlung, etc einbauen.
      Aber im Grunde ist es das.

      Gruss,
       CK
      P. S.: Ungetestet

      1. hi christian ,

        ich danke dir für dein engagement und werde deinen ansatz verfolgen .

        gruß frank

        Joho,  <-- das ist eine Begruessung

        dann musst du alt auf dem 'fremden server' ein script
        installieren. anders wird das nicht gehen.
        das wäre ja auch übel, wenn man per http auf fremden server auf
        datei-system zugreifen könnte!!!

        Das ist natuerlich Quatsch. Die Datei muss nur im Webroot liegen,
        dann kannst du sie ganz normal per HTTP auslesen -- entweder mit
        dem fopen-wrapper:

        $file = '';
        $fd = fopen("http://url/file","r");
        while(!feof($fd))
        {
          $file .= fread($fd,1024);
        }

        oder per Sockets:

        $sock = fsockopen("server",80);
        fputs($sock,"GET /path/file HTTP/1.1\nHost: host\nConnection: close\n\n");

        $file   = '';
        $header = 0;
        $pre    = '';
        while(!feof($sock))
        {
          $line = fgets($sock,1024);

        /* sollte eine zeile laenger als 1024 zeichen sein,
             wird sie beim nexten durchgang weitergelesen */
          if(!preg_match('\012\015|\012|\015$'))
           {
            $pre .= $line;
            continue;
           }

        /* zeile ist komplett */
          $pre = '';

        /* header und content sind durch eine leerzeile
             getrennt voneinander */
          if(preg_match('!^\s*$!',$line))
            $header = 1;

        if($header = 0)
            continue;

        /* nicht mehr im header, also ists die file */
          $file .= $line;
        }

        Da muesste man natuerlich noch eine Fehlerbehandlung, etc einbauen.
        Aber im Grunde ist es das.

        Gruss,
        CK
        P. S.: Ungetestet

        1. hallo,

          http://forum.de.selfhtml.org/?m=3126&t=530
          was jetzt ?? up- oder download

          und meinst du jetzt von einem server zu einem anderen
          server "umloaden" oder von deinem lokalen system aus
          auf einen server uploaden?

          wenn du was über uploads wissen willst,
          da gibt es eine supi anleitung dazu..
          http://www.php.net/manual/en/features.file-upload.php

          grüße
          FICHTL