13.6. Wie kann ich einen Datei-Upload per FTP durchführen?Antwort von Johannes FrömterPHP hat eingebaute FTP-Funktionen , mittels derer man Dateien von oder zu einem FTP-Server übertragen kann. Es ist damit aber nicht möglich, Daten von einem Browser zu empfangen! Dies ist also keine Alternative zum HTTP-Upload per HTML-Formular (siehe hierzu "Wie funktioniert ein Datei-Upload über HTML-Formulare?"). PHP kann nur einen FTP-Client darstellen, der sich zu einem FTP-Server verbindet, d. h. der Verbindungsaufbau und die -steuerung müssen immer vom PHP-Script aus erfolgen, und die Daten für den Upload müssen sich bereits auf dem Webserver befinden. Vollständige Beispiele für eine FTP-Verbindung mit PHP finden sich im Manual und weiter unten auf dieser Seite. Antwort von Kristian KöhntoppDie FTP-Funktionen sind verfügbar, wenn PHP mit der Option --enable-ftp (bei PHP 3: --with-ftp) übersetzt worden ist. In der Ausgabe von phpinfo() erscheint dann in der Modulliste der FTP-Support. Die Funktionen sind im Manual im Kapitel FTP-Funktionen im Einzelnen beschrieben. Vollständiges Beispiel: <h1>FTP Test</h1> <?php $link = ftp_connect("localhost"); if (!ftp_login($link, "ftp", "user@host.de")) die("Kann mich nicht einloggen."); if (!ftp_chdir($link, "/pub")) die("Kann nicht in das Zielverzeichnis /pub wechseln."); $name = ftp_nlist($link, "."); if (isset($name) and is_array($name)) { foreach ($name as $k => $v) { printf("%s - %s<br>\n", $k, $v); } } $size = ftp_size($link, "beispiel"); if ($size < 0) die("Kann die Größe der Datei beispiel nicht bestimmen."); $mtime = ftp_mdtm($link, "beispiel"); if ($mtime < 0) die("Kann die mtime der Datei beispiel nicht bestimmen."); printf("beispiel - %d Byte, %s<br>\n", $size, strftime("%c", $mtime)); $result = ftp_get($link, "/tmp/bbb", "beispiel", FTP_BINARY); if (!$result) die("Download von Datei beispiel fehlgeschlagen."); if (!ftp_chdir($link, "/incoming")) die("Kann nicht in das Zielverzeiczhnis /incoming wechseln."); $result = ftp_put($link, "upload.txt", "/etc/termcap", FTP_BINARY); if (!$result) die("Upload von Datei termcap fehlgeschlagen."); ftp_quit($link); printf("Ende.<br>\n"); ?> |
||
13.6. Wie kann ich einen Datei-Upload per FTP durchführen? http://www.php-faq.de/q/q-datei-upload-ftp.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |