• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP FTP Connect und Datei-Upload

kRuzeFiX

Neues Mitglied
Hallo Leute,

ich steh vor folgender Aufgabe: Simpler Datei-Upload in einen Ordner, ich komme aber nicht weiter.
Hier mein Quelltext bisher:

PHP:
<?php
$ftp_server = "localhost";
$ftp_user_name = "benutzer";
$ftp_user_pass = "passwort";


$dir = '/';

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result)) {
echo "FTP Verbindung konnte nicht aufgebaut werden!";
echo "Versuch auf $ftp_server mit dem User $ftp_user_name zu verbinden schlug fehl!";
exit;
} else {
echo "Verbindung auf $ftp_server konnte erfolgreich hergestellt werden!";
ftp_mkdir($conn_id, $dir);
}


ftp_close($conn_id); 

//chmod("/benutzer/daten/upload/", 0777);

if(isset($_POST['submit'])){
    move_uploaded_file($_FILES['datei']['tmp_name'], "/www/htdocs/benutzer/daten/upload/");
    echo "Upload war erfolgreich.";
    
}
?>

ich dachte nun erst es liegt an den rechten, deshalb das mit dem chmod. Nun kommen folgende Fehlermeldungen:

Warning: ftp_mkdir() [function.ftp-mkdir]: /: File exists in /www/htdocs/benutzer/daten/upload/upload.php on line 32

Warning: move_uploaded_file() [function.move-uploaded-file]: The second argument to copy() function cannot be a directory in /www/htdocs/benutzer/daten/upload/upload.php on line 51

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phprC6rtU' to '/www/htdocs/benutzer/daten/upload/' in /www/htdocs/benutzer/daten/upload/upload.php on line 51

Die Datei soll einfach in den Upload Ordner gelegt werden. Ich komme aber echt nicht weiter. Weiss jemand an was das liegt?

Grüße und Danke.
 
Zuletzt bearbeitet:
Du schliesst die Verbindung und versuchst dann die Datei zu übertragen, das kann nicht gehen.
Und das Verzeichnis besteht schon, da brauchst kein Neues anlegen mit mkdir, daher das Warning.

Ändere das und teste ob es geht.
 
Danke, habe mkdir komplett gelöscht und ftp_close ganz ans ende des php codes geschrieben.
Trotzdem kommen folgende Meldungen:

Verbindung auf localhost konnte erfolgreich hergestellt werden!
Warning: move_uploaded_file() [function.move-uploaded-file]: The second argument to copy() function cannot be a directory in /www/htdocs/benutzer/daten/upload/upload.php on line 42

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php7Alq4t' to '/www/htdocs/benutzer/daten/upload/' in /www/htdocs/benutzer/daten/upload/upload.php on line 42
Upload war erfolgreich.
 
ich sehe gerade du versuchst das lokal auf deinem Rechner. Also wenn du nur eine Datei in ein Verzeichnis schieben willst, welche du mit einem Formular hochlädst, ist es das falsche Vorgehen.

Lies mal hier, da sind auch Beispiele:
PHP: Dateiuploads mit POST - Manual
 
Nicht das wir aneinander vorbeireden. Egal von welchem PC soll es damit möglich sein eine x-beliebige Datei auf den FTP Server in das Upload Verzeichnis hochzuladen.
 
Im Vorteil ist, wer lesen kann :-).

Steht doch da, dass das Ziel ein Dateiname sein muss, kein Verzeichnis.

der Befehl zu dieser Meldung is ja:
move_uploaded_file($_FILES['datei']['tmp_name'], "/www/htdocs/benutzer/daten/upload/");

Warum muss das Ziel ein Dateiname sein? Und inwiefern? Wenn ich also mehrere Daten hochlade, bekommen alle denselben Zielnamen?? Ich gebe hier doch nur an, dass ich will, das die neu hochgeladene Datei nach /upload/ verschoben wird oder?
 
Nicht das wir aneinander vorbeireden. Egal von welchem PC soll es damit möglich sein eine x-beliebige Datei auf den FTP Server in das Upload Verzeichnis hochzuladen.
Ist schon klar. Wenn du auf deinem Server das Script laufen lässt und da die Datei hin soll ist FTP nicht richtig.
Wenn du auf deinem Server, da wo das Script läuft eine Datei hochladen willst, die dann zum Beispiel auf meinen Server gespeichert wird, dann machst du das mit FTP und meinen Zugangsdaten.

Und das Script läuft lokal so nicht.

Hoffe jetzt wird es verständlich. Dass das Hochladen immer von jedem PC mit Internetanschluss möglich ist, sollte klar sein.
 
Danke Wustersoss für die Aufklärung, jetzt ist es mir klar ;)
Habe die entsprechende Zeile jetzt wiefolgt abgeändert:
PHP:
if(isset($_POST['submit'])){
    move_uploaded_file($_FILES['datei']['tmp_name'], "/www/htdocs/benutzer/daten/upload/".$_FILES['userfile']['name']);

Fehler bleiben die gleichen
Warning: move_uploaded_file() [function.move-uploaded-file]: The second argument to copy() function cannot be a directory in /www/htdocs/benutzer/daten/upload/upload.php on line 42

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php7Alq4t' to '/www/htdocs/benutzer/daten/upload/' in /www/htdocs/benutzer/daten/upload/upload.php on line 42
 
Habs hinbekommen:
PHP:
$target_path = "uploads/";

$target_path = $target_path . basename($_FILES['datei']['name']);

if(move_uploaded_file($_FILES['datei']['tmp_name'], $target_path)){
    echo "Die Datei ". basename($_FILES['datei']['name']). "wurde erfolgreich hochgeladen.";
} else {
    echo "Ein Upload Fehler ist aufgetreten";
}

Danke für eure Hilfe!
 
Zurück
Oben