Hallo zusammen!
Google&Co. haben leider nicht den erhofften Erfolg gebracht, daher versuch ich mein Glück einfach hier:
Benutzer meiner Website füllen ein Formular aus, dessen Inhalt als schlichte Textdatei in einem Verzeichnis auf dem Server abgelegt wird.
Als weiterer Schritt ist nun angedacht, die Dateien manuell "abzuarbeiten". Das könnte man über einen direkten FTP-Zugriff realisieren, was ich aber nicht anbieten möchte, da auch Personen auf diese Dateien zugreifen sollen, die schlicht von FTP keinen blassen Schimmer haben
Momentan hab ich's so realisiert, daß ich den Inhalt des Verzeichnisses mit opendir/readdir in ein Array auslese und daraus dann per PHP eine Liste der Dateinamen mit einem Link-Button dahinter erstelle. Button anklicken öffnet die Textdatei im Browser, rechtsklick-speichern speichert auf die Festplatte.
Vorteil für den Benutzer: Er ruft eine Unterseite auf der Website auf und hat den Dateizugriff - kein FTP-Programm mehr nötig.
Das Verfahren würde ich aber gerne folgendermaßen ändern:
Die ermittelten Dateinamen werden in einem Formular mit Checkboxen ausgegeben, der Benutzer klickt an, welche Datei er downloaden möchte, gibt ein Zielverzeichnis seiner Festplatte an, schließt das Formular mit Absenden ab und dann werden die ausgewählten Dateien vom Server auf den Zielrechner übertragen.
Folgenden Code hab ich jetzt zusammengestellt:
Wenn ich das Skript ausführe erhalte ich die Meldung "download erfolgreich", die Datei wird allerdings nicht geladen - das Verzeichnis auf der Festplatte bleibt leer.
Mach ich irgendwo einen Denkfehler - gibt's andere Wege zum gleichen Ergebnis? Woran kann's liegen?
Vielen Dank vorab,
Holger
Google&Co. haben leider nicht den erhofften Erfolg gebracht, daher versuch ich mein Glück einfach hier:
Benutzer meiner Website füllen ein Formular aus, dessen Inhalt als schlichte Textdatei in einem Verzeichnis auf dem Server abgelegt wird.
Als weiterer Schritt ist nun angedacht, die Dateien manuell "abzuarbeiten". Das könnte man über einen direkten FTP-Zugriff realisieren, was ich aber nicht anbieten möchte, da auch Personen auf diese Dateien zugreifen sollen, die schlicht von FTP keinen blassen Schimmer haben
Momentan hab ich's so realisiert, daß ich den Inhalt des Verzeichnisses mit opendir/readdir in ein Array auslese und daraus dann per PHP eine Liste der Dateinamen mit einem Link-Button dahinter erstelle. Button anklicken öffnet die Textdatei im Browser, rechtsklick-speichern speichert auf die Festplatte.
Vorteil für den Benutzer: Er ruft eine Unterseite auf der Website auf und hat den Dateizugriff - kein FTP-Programm mehr nötig.
Das Verfahren würde ich aber gerne folgendermaßen ändern:
Die ermittelten Dateinamen werden in einem Formular mit Checkboxen ausgegeben, der Benutzer klickt an, welche Datei er downloaden möchte, gibt ein Zielverzeichnis seiner Festplatte an, schließt das Formular mit Absenden ab und dann werden die ausgewählten Dateien vom Server auf den Zielrechner übertragen.
Folgenden Code hab ich jetzt zusammengestellt:
PHP-Code:
// URL: http://www.beispiel.de
$ftp_server="beispiel.de";
$ftp_user_name="user";
$ftp_user_pass="pass";
$webpfad="verzeichnis/"; // Dateien im Ordner "www.beispiel.de/verzeichnis/bsp.txt"
$discpfad="c:\\download\\"; // Datei auf Festplatte "c:\download\bsp.txt"
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
ftp_chdir($conn_id, $webpfad);
// $webpfad.$datei -> Datei auf dem Server
// $discpfad.$datei -> Datei auf der Festplatte
if (ftp_get($conn_id, $webpfad.$datei, $discpfad.$datei, FTP_BINARY))
{
echo "download erfolgreich\n";
}
else
{
echo "download nicht erfolgreich\n";
}
ftp_close($conn_id);
Mach ich irgendwo einen Denkfehler - gibt's andere Wege zum gleichen Ergebnis? Woran kann's liegen?
Vielen Dank vorab,
Holger
Kommentar