Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

FTP Upload mit PHP Skript

Hey,

habe hier ein Upload Script erstellt mit 3 dateien:

testen.html

Zitat
<html>
<head>
<title>Hier kannst du auf deinen Ftp Server joinen</title>
</head>
<body>
<form action="connectftp.php" method="post">
Hier deine Host-Adresse: <input name="host" type="text">
User: <input name="user" type="text">
Passwort: <input name="pass" type="password">
  <input type="submit">
</body>
</html> 
 
 


connectftp.php

 
Zitat
<html>
<?php
sleep(2);
session_start();


$host = $_POST["host"];   // Adresse des FTP-Servers, meistens localhost
$user = $_POST["user"];  // Dein FTP Benutzername
$pass = $_POST["pass"]; // Dein FTP Passwort


if (!isset($_SESSION['host']))
   {
   $_SESSION['host'] = "$host";
   }
if (!isset($_SESSION['user']))
   {
   $_SESSION['user'] = "$user";
   }
if (!isset($_SESSION['name']))
   {
   $_SESSION['pass'] = "$pass";
   }

$connection_id = ftp_connect($host);

$con = ftp_login ($connection_id, $user, $pass) or die ("Keine Verbindung zum FTP-Server möglich");

ftp_close ($con);
echo "Verbindung erfolgreich!"
?>
<head>
<title> FTP Verbindung ist erfolgreich hergestellt!</title>
</head>
<body>
<h2>Sie können nun eine Datei auf den FTP-Server laden.</h2><br>
<body bgcolor="#FFFFFF" text="#000000">
<form action="ftpupload.php" enctype="multipart/form-data" method="post">
 
Wählen Sie eine Datei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="lokale_datei" type="file" accept="text/*">
<br>
Verzeichnis
auf dem FTP-Server<br>
<input type="text" name="zieldatei"><br>
<input type="submit" name="Abschicken"
    value="Abschicken">
</form>
<br>
</body>
</html> 


ftpupload.php

 
Zitat
<?php
sleep(1);
session_start(); 

$host = $_SESSION["host"];   // Adresse des FTP- Servers
$user = $_SESSION["user"];  // Ihr FTP Benutzername
$pass = $_SESSION["pass"]; // Ihr FTP Passwort

$lokaledatei = $_POST["lokaledatei"]; // Die hochzuladene Datei 
$zieldatei = $_POST["zieldatei"]; // Verzeichnis auf FTP


$connection_id = ftp_connect($host);

$con = ftp_login ($connection_id, $user, $pass) or die ("Keine Verbindung zum FTP-Server möglich");

echo "<P>Verbunden mit FTP-Server als Benutzer $user</P>";

// Hochladen der datei

$upload = ftp_put($connection_id, $zieldatei, $lokaledatei, FTP_BINARY) or die ("FTP Upload war nicht erfolgreich!");
 
echo "<P>Die Datei $lokaledatei wurde auf $host als $zieldatei geschrieben</P>";
 
ftp_quit($connection_id);

?>



so wenn ich die logindaten in der testen.html datei reinschreib, führt die connectftp.php den login durch.

so sieht es im ftp aus:

(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.27 beta
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 220-FTP-Connection successfully.
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 220 Welcome! Visit Willkommen beim -=[TtS]=-|ThE LiMiT iS NoThInG
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> USER Benni
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 331 Password required for benni
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> PASS *******
(00002 26.02.2009 22:59:05 - benni (127.0.0.1)> 230 Logged on
(00002 26.02.2009 22:59:05 - benni (127.0.0.1)> disconnected.


nachdem ich dann eine datei ausgewählt habe, kommt das im lokalen ftp:


(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.27 beta
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 220-FTP-Connection successfully.
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 220 Welcome! Visit Willkommen beim -=[TtS]=-|ThE LiMiT iS NoThInG
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> USER Benni
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 331 Password required for benni
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> PASS *******
(000029) 26.02.2009 22:59:10 - benni (127.0.0.1)> 230 Logged on
(000029) 26.02.2009 22:59:10 - benni (127.0.0.1)> disconnected.



er loggt ein, aber führt diesen befehl:

$upload = ftp_put($connection_id, $zieldatei, $lokaledatei, FTP_BINARY) or die ("FTP Upload war nicht erfolgreich!");


nicht aus


wenn ich zum beispiel auf einen ftp zugreife der schon im net íst, führt er bis zur connectftp.php aus und wenn ich dann eine datei auswähle und auf Abschicken klicke, lädt er ne ganze weile und dann kommt Interner Fehler 500 ?

hat jemand ne idee?


liebe grüße



 

Antworten zu FTP Upload mit PHP Skript:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich weiß nicht ob das nen Fehler ist, aber ftp_put braucht ja für die "Lokale Datei" den Namen der temporär auf dem Server gespeicherten Datei.... bekommt man den wirklich über $_POST["lokaledatei"]? Bzw. fehlt da wahrscheinlich noch der Unterstrich und du wolltest stattdessen über $_POST["lokale_datei"] drauf zugreifen... aber wie gesagt würde ich dann eher damit rechnen, dass du dann vllt. den Pfad der Datei auf dem hochladenden Rechner bekommst, nicht aber den Pfad zur temporären Datei auf dem Server.

Du kannst ja vllt. mal stattdessen mit $_FILES['lokale_datei']['tmp_name'] probieren.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Mati hat recht, du müsstest über das superglobale Array $_FILES[] gehen.

Darf ich mal nach dem Sinn dieses Skripts fragen? Falls es dein Ziel ist, ein lokales FTP-Programm zu ersetzen: das funktioniert so nicht! Du hast mit PHP keinen Zugriff auf das Dateisystem des Clients. Folglich ist das nötig, was du grad tust: Eine Datei per HTTP hochladen und per FTP weiter verteilen (was im Falle von "localhost" oft sinnfrei ist).

greez 8)
JoSsiF


« Kostenlose Homepage Anbieter gesuchtMit HTML Emails verschicken »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Upload
Als Upload, zu Deutsch: Hochladen, bezeichnet man einen Datenfluss, der von einem lokalen Rechner oder einem lokalen Speichermedium zu einem entfernten Rechner oder Serve...

AppleScript
AppleScript ist eine Programmiersprache von Apple für Skripte und Programme auf Systemebene. Im Gegensatz zu den Unix-Shellscripts, die seit OS X ebenfalls mögl...

Javascript
JavaScript ist eine weit verbreitete Skriptsprache, die ursprünglich von Netscape für das DOM-Scripting für Webseiten entwickelt wurde. Sie hat sich seitde...