2010-12-27 6 views
7

ist es möglich, Datei größer als 200 MB auf meine Web-Hosting direkt zu downloaden, so dass ich diese Datei nicht auf meinen Computer herunterladen und laden Sie dann mit meinem FTP-Client. und da ich ssh nicht verwende, kann ich wget nicht verwenden. Ich war von PHP zu denken oder pro oder cgi sein kann .. (offen für alle Ideen ..)Herunterladen von Dateien auf Webserver von einer anderen Website mit PHP

+==============+         +--------+ 
| Big server | -----------+    +--->|web host| 
+==============+   | +------+  | +--------+ 
          +-->| MyPC |-----+  | 
           +------+    |  +========+ 
                 +---->| client | 
                  +========+ 

oder

+============+ 
| Big Server | ---+ 
+============+ |      +----------+ 
        +--------------------->| Web Host | 
             +----------+ 
              | 
    +------+         |  +========+ 
    | MyPC |         +----->| client | 
    +------+          +========+ 

plz help ....

+1

Welche Art von Zugang beschreibbar zum Download haben Sie auf Ihrem Web-Server? Nur ein Admin-Panel, Shell-Zugriff? –

+0

Was ist auf Ihrem Server verfügbar, welche Permissinos haben Sie? – helle

+0

Ich habe keinen Shell-Zugriff nur ftp; – voldyman

Antwort

7

Für cURL

$url = "http://path.com/file.zip"; 
$fh = fopen(basename($url), "wb"); 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
curl_exec($ch); 
curl_close($ch); 
+0

locke teilweise gearbeitet, aber die datei, die erstellt wird, ist 0 biss. .. – voldyman

+1

das funktionierte schließlich, da mein Gastgeber den ausgehenden Verkehr auf Port 80 geschlossen hatte. Es gab keinen Fehler im Code ... – voldyman

1

Mit PHP Sie die Datei mit diesem herunterladen können:

<?php 
$in = fopen('http://example.com/', 'r'); 
$out = fopen('local-file', 'w'); 
while(!feof($in)) { 
    $piece = fread($in, 2048); 
    fwrite($out, $piece); 
} 
fclose($in); 
fclose($out); 
?> 

Dies erfordert zwei Dinge:

  • muss die lokale Datei vom Webserver
  • allow_url_fopen beschreibbar sein muss die einfachste ist wahrscheinlich auf dem Webserver
+1

Kopie() könnte einfacher sein? –

+0

änderte die Seite etwas (akx.x10.mx/akx/down.php) Ich bin in der Lage, Dateien von meinem Server herunterzuladen, aber andere Server geben den folgenden Fehler "Fehler beim Öffnen des Streams: Verbindungstimeout in/*** "edit: oh nur sah allow_url_fopen ist deaktiviert ....... (:( – voldyman

4

in PHP aktiviert werden:

<?php 
copy('http://server.com/big.file','/local/path/big.file'); 
?> 

aber Sie sollten kann wget ausführen. vor allem, wenn externe fopen auf Ihrem Server deaktiviert wird, die

mit PHP sehr wahrscheinlich ist wie:

<?php 
chdir('/where/i/want/to/download/the/file/'); 
system('wget http://server.com/big.file'); 
?> 

oder

<?php 
system('wget -O /where/i/want/to/save http://server.com/big.file'); 
?> 

curl einen anderen Weg. Sie können den Shell-Befehl ausführen oder curl php verwenden.

auch sicherstellen, dass Sie den Ordner (oder Datei) Sie wollen, ist

+0

die kopie und system methode zeigen 500 fehler – voldyman

+0

sieht aus wie eine serverbeschränkung dann. –

Verwandte Themen