Mit PHP Textdatei auf FTP-Server uploaden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
bot
code
datei
denkfehler
file
folgende fehlermeldung
format
ftp
kleinigkeit
kommando
lokal liegenden datei
pfad
problem
server
test
textdatei
weiterbildung
wirkung
zusammenhang
-
Hi Leute,
ich bin gerade dabei, einen Bot zu programmieren, der über Befehle in einer Textdatei, welche vom FTP-Server auf lima-city gedownloaded werden sollen, gesteuert wird.
Das uploaden dieser Textdatei and den FTP-Server soll über PHP bewerkstelligt werden, hier gibt es allerdings ein kleines Problem.
Ich benutze derzeit folgenden HTML-Code:
<html> <head> <title> Datei Upload </title> </head> <body bgcolor="#FFFFFF" text="#000000"> <h1> Schicken Sie uns ihre Texte </h1> <form action="ftpbeispiel.php" enctype="multipart/form-data" method="POST"> Wählen Sie eine Textdatei (txt, html usw.) von Ihrem Rechner aus: <input name="lokale_datei" type="file" size="50" maxlength="1024" accept="text/*"> <input type="submit" name="Abschicken" value="Abschicken"> </form> </body> </html>
....in Zusammenhang mit diesem PHP-Code:
<?php $file = $_POST['lokale_datei']; $remote_file = "./test/Cisco.txt"; $ftp_server = "ftp.lima-city.de"; $ftp_user_name = "username"; $ftp_user_pass = "password"; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); ftp_pasv($conn_id, true); if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "successfully uploaded $file\n"; } else { echo "There was a problem while uploading $file\n"; } ftp_close($conn_id); ?>
Die Verbindung mit dem FTP-Server wird hergestellt und auch der Login funktioniert, ich habe allerdings ständig folgende Fehlermeldung erhalten:
Warning: ftp_put() [function.ftp-put]: Filename cannot be empty in C:\xampplite\htdocs\test\ftpbeispiel.php on line 13
Habe daraufhin mal ein bisschen gegoogelt und es mit einer passiven Verbindung versucht.
Selbes Ergebnis....ich habe auch gelesen, das ich die Datei binär übertragen soll, anstatt im ASCII Format, bleibt aber auch ohne Wirkung.
Die Fehlermeldung "Filename cannot be empty" bezieht sich auf das Kommando "$file = $_POST['lokale_datei'];".
Wenn ich den benötigten Pfad allerdings direkt in den Code schreibe (wie bei $remote_file), funktioniert das Ganze.
Das Problem muss also irgendwo bei der Übergabe des Inputs im HTML-Code an den PHP-Code liegen.
Wenn ich die Variable per "echo" ausgeben möchte, ist sie auch tatsächlich leer.
Ich weiß nicht, wo der Fehler liegt....kann nur ne Kleinigkeit sein. =) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi adelwoehrer,
der Inhalt einer Datei, wird nicht in der Variable $_POST[] abgelegt, sonder in der Variablen $_FILES[].
Müsste dann so ausschauen:
$file = $_FILES['lokale_datei']['tmp_name'];
Wenn ich mal extern Verlinken darf zwecks Weiterbildung: ;)
http://aktuell.de.selfhtml.org/artikel/php/php-uploadcheck/#a4
Gruß Nippey
Beitrag zuletzt geändert: 12.3.2011 22:14:42 von nippey -
Hi nippey,
vielen Dank für die Hilfe, das hat geklappt. =)
Hatte da nen Denkfehler....ich dachte, ich müsste einfach nur den Pfad der lokal liegenden Datei als String übergeben, dabei ist die Datei selbst zu übergeben.
Nützlichr Link, Danke. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage