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 | ||