PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   ?? Eine Datei downloaden ?? (https://www.php-resource.de/forum/php-developer-forum/26418-eine-datei-downloaden.html)

nowis 23-09-2003 12:47

?? Eine Datei downloaden ??
 
Hallo,

ich möchte von einer beliebigen URL eine Datei auswählen und in das Verzeichnis kopieren, d.h. downloaden, in dem sich das PHP-File befindet. Leider habe ich in diversen Foren wie auch diesem hier nichts probates gefunden, bis auf einige Hinweise, die ich in dem folgenden Versuch zusammengefasst hat. In diesem Beispiel handel es sich um eine Text-Datei aber ich möchte auch gerne Bilder kopieren.

Server: Suse Linux auf Kernel 2.4.19
PHP-Ver: Frag ich gerade nach wegen: fopen().wrappers, die sind aber stadardmäßig enabled.
Client: WinXP/IE6.0

PHP-Code:

<?

  $source      
"http://www.xy.de/index.html";
  
$destination "/home/user/www/dl/index.html";

  
$s_handle fopen ($source"r");
  
$d_handle fopen ($destination"w");

  echo 
"S: $s_handle | D: $d_handle<br>";

  
$result copy ("http://www.xy.de/index.html","");

  echo 
"$result";

  
fclose($s_handle);
  
fclose($d_handle);

  
?>

irgendwelche ideen

:confused: :confused: :confused: :confused:
EDIT:
bunt gemalt

wahsaga 23-09-2003 13:42

Re: ?? Eine Datei downloaden ??
 
Zitat:

Original geschrieben von nowis
irgendwelche ideen
irgendwelche probleme, fehlermeldungen, ...?

wie wär's, wenn du uns mal sagst, womit wir dir jetzt eigentlich weiterhelfen sollen?

nowis 23-09-2003 13:55

sorry
 
habsch vergessen.

mit fopen funktioniert alles.

Ich kann mit copy nicht auf die Quelldatei zugreifen, als Fehlermeldung bekomme ich, dass die Datei nicht gefunden wurde.

Da ganze kann ja nicht so schwer sein. Ich weis nur nicht wie. Ist bestimmt kein großes Skript.
Ich wollte nur wissen ob jemand damit Erfahrung hat, bzw. ein paar Zeilen parat hat WIE ich eine Datei von einer beliebigen Internetresource in mein Homedirectory kopieren kann !!!

Mein Skript das ich da geschrieben habe ist bestimmt falsch, aber ich verstehe im Moment die Zusammenhänge nicht und deshalb suche ich Jemanden bzw. dessen Programm, dass das tut was ich möchte !

(allow_url_fopen in der PHP.ini ist enabled!)

Vielen Dank im Voraus.

mrhappiness 23-09-2003 14:16

Re: ?? Eine Datei downloaden ??
 
Zitat:

Original geschrieben von nowis
PHP-Code:

$result copy ("http://www.xy.de/index.html",""); 


schau mal im manual.

du übergibst als ziel nämlich nicht gerade viel

schmalle 23-09-2003 14:50

muss man ned eigentlich noch das file mit fread einlesen? :dontknow: was sagste großer meister @happy? :D

mrhappiness 23-09-2003 14:55

ich glaube da einfach mal dem manual :)

schmalle 23-09-2003 14:55

Zitat:

Original geschrieben von mrhappiness
ich glaube da einfach mal dem manual :)
das habe ich dieses mal nicht zu rate gezogen ... wofür bist du denn da :) :p

mrhappiness 23-09-2003 14:58

nun denn, probieren wir's mal logisch (auch wenn's schon nach zwölf is :))

warum sollte ich die datei, die ich kopieren will, mit fopen öffnen und mit fread lesen, wenn ich im copy-befehl doch die url angebe?

schmalle 23-09-2003 15:00

Zitat:

Original geschrieben von mrhappiness
warum sollte ich die datei, die ich kopieren will, mit fopen öffnen und mit fread lesen, wenn ich im copy-befehl doch die url angebe?
jetzt wo du es sagst ... ;) es ist halt nach 12 :rolleyes:

mrhappiness 23-09-2003 15:02

Zitat:

Original geschrieben von schmalle
jetzt wo du es sagst ... ;) es ist halt nach 12 :rolleyes:
und damit zeit zum aufstehen :D (hab ja noch zu tun heut *g*)

nowis 23-09-2003 17:29

habs FAST hingekriegt !!!
 
so jetzt hab ichs FAST hingekriegt.

so gehts :

PSEUDO-CODE !!

fopen($quelle);
fopen($ziel);
$groesse=1000;
$content = fread ($quelle,$groesse);
$status = fwrite ($ziel,$content);
fclose($quelle);
fclose($ziel);

Ein Problem gibts noch. Ich muss eine feste Größe der zulesenden Datei angeben. Habs schon mit filesize() probiert. Geht habe nicht, da filesize() nur auf lokale, nicht aber auf Remote-, Dateien zugreifen kann :-(

Hat Jemand eine Idee wie man, die Größe einer entfernten Datei bekommen kann. THX. :dontknow:

mrhappiness 23-09-2003 17:31

warum nimmst du jetzt nicht mehr copy?

wen du mit fread und co. arbeiten willst, dann lies doch einfach bis feof

nowis 23-09-2003 17:36

copy() funktioniert einfach nicht. Da hat er die Quelldatei nie gefunden, obwohl ich 777 rechte für alles vergeben hatte, auch für das Verzeichnis. Hat alles nicht geholfen.

mit der fread() und fwrite() funktionierts auch mit Rechten, die dem gesunden Computer Verstand eher entsprechen.

feof ist natürlich ein guter Tipp. Werds gleich mal ausprobieren. thx.

nowis 23-09-2003 17:50

JETZT KLAPPTS
 
:rocks:

so klappts !!!

<?PHP

$source = "http://www.xy.de/pic.jpg";
$destination = "/home/xy/www/dl/pic.jpg";

$s_handle = fopen ($source, "r");
$d_handle = fopen ($destination, "w");

echo "S: $s_handle | D: $d_handle<br>";

# Setzte Limit auf 500kB - In der PHP.ini sind es standardmaessig 1MB
$limit = 512000;
$sourceData = fread($s_handle,$limit);

$copyResult = fwrite($d_handle,$sourceData);

echo "COPY-RESULT: $copyResult";

fclose($s_handle);
fclose($d_handle);

?>

PS: Kann es probleme mit dem Limit geben ???

mrhappiness 23-09-2003 21:12

PHP-Code:

$source='';
while (!
feof($s_handle))
  
$source.=fread($s_handle,1024); 

was is damit?


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:31 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG