'download' von einem anderen server (auch als *netcopy* bekannt)
frank
- php
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
korrigiere: 'upload' natürlich !!!
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
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
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
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
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
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
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
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