Hallo,
ich habe einen Dateiupload geschrieben. Als erstes erstellt der User einen Ordner in den dann die Upload-Files gespeichert werden. Das ganze läuft so: Der User erhält ein Eingabefeld in das er den Namen des Ordners, den er erstellt eingibt. Danach wird der Ordner erstellt und der Name wird mittels datei.php?ordner=ordnername übergeben. Es funktioniert auch alles soweit einwandfrei. Hier mein Script (Problemerklährung nach dem Script):
<?php
$FTPServer = "xxxxxxxxxx";
$FTPUser = "xxxxxxxxxxx";
$FTPPasswort = "xxxxxxxxx";
$Od = $_GET["ordner"];
$dir = "$Od";
if($_REQUEST['Send'])
{
$VerbindungsID = ftp_connect($FTPServer);
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
if($VerbindungsID && $LoginErgebnis)
{
$dir_chng_res=ftp_chdir($VerbindungsID, $dir);
if (!$dir_chng_res) {
echo "Wechsel zu Verzeichnis fehlgeschlagen: $ft_dir! <br>";
die;
}
else {
echo "Gewechselt zu Verzeichnis $ft_dir <br>";
}
$UploadErgebnis = ftp_put($VerbindungsID, $_FILES['Datei']['name'], $_FILES['Datei']['tmp_name'], FTP_BINARY);
if($UploadErgebnis)
{
echo"Die Datei wurde hochgeladen!";
}
else
{
echo"Die Datei konnte nicht hochgeladen werden.";
}
ftp_quit($VerbindungsID);
}
else
{
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
}
}
else
{
?>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<input name="Datei" type="file"><br>
<input name="Send" type="submit" value="Upload">
</form>
<?php
}
?>
Es Funktioniert alles einwandfrei, solange ich bei $dir direkt den Namen des Ordners eingebe. Also z.B. $dir = "/Test"; .
Ich will jedoch den zuvor übermittelten Parameter verwende, also $Od, da ich ja immer einen neuen Ordner anlege und die Dateien immer in den passenden Ordner gespeichert werden sollen. Also schreibe ich $dir = "/".$Od;
So wird die Datei jedoch ins root-Verzeichnis gespeichert. Ich habe schon probiert ein Script zuvor den Ordnernamen so zu übergeben, das der wert als /Ordnername übergeben wird und ich dann $dir = $Od; eingebe.
Jetzt bekomme ich folgenden fehler: Warning: ftp_chdir() [function.ftp-chdir]: This command require a paremeter.
Kann mir jemand helfen, dass der Parameter vom Script angenommen wird?
Vielen Dank
Gruß
ich habe einen Dateiupload geschrieben. Als erstes erstellt der User einen Ordner in den dann die Upload-Files gespeichert werden. Das ganze läuft so: Der User erhält ein Eingabefeld in das er den Namen des Ordners, den er erstellt eingibt. Danach wird der Ordner erstellt und der Name wird mittels datei.php?ordner=ordnername übergeben. Es funktioniert auch alles soweit einwandfrei. Hier mein Script (Problemerklährung nach dem Script):
<?php
$FTPServer = "xxxxxxxxxx";
$FTPUser = "xxxxxxxxxxx";
$FTPPasswort = "xxxxxxxxx";
$Od = $_GET["ordner"];
$dir = "$Od";
if($_REQUEST['Send'])
{
$VerbindungsID = ftp_connect($FTPServer);
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
if($VerbindungsID && $LoginErgebnis)
{
$dir_chng_res=ftp_chdir($VerbindungsID, $dir);
if (!$dir_chng_res) {
echo "Wechsel zu Verzeichnis fehlgeschlagen: $ft_dir! <br>";
die;
}
else {
echo "Gewechselt zu Verzeichnis $ft_dir <br>";
}
$UploadErgebnis = ftp_put($VerbindungsID, $_FILES['Datei']['name'], $_FILES['Datei']['tmp_name'], FTP_BINARY);
if($UploadErgebnis)
{
echo"Die Datei wurde hochgeladen!";
}
else
{
echo"Die Datei konnte nicht hochgeladen werden.";
}
ftp_quit($VerbindungsID);
}
else
{
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
}
}
else
{
?>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<input name="Datei" type="file"><br>
<input name="Send" type="submit" value="Upload">
</form>
<?php
}
?>
Es Funktioniert alles einwandfrei, solange ich bei $dir direkt den Namen des Ordners eingebe. Also z.B. $dir = "/Test"; .
Ich will jedoch den zuvor übermittelten Parameter verwende, also $Od, da ich ja immer einen neuen Ordner anlege und die Dateien immer in den passenden Ordner gespeichert werden sollen. Also schreibe ich $dir = "/".$Od;
So wird die Datei jedoch ins root-Verzeichnis gespeichert. Ich habe schon probiert ein Script zuvor den Ordnernamen so zu übergeben, das der wert als /Ordnername übergeben wird und ich dann $dir = $Od; eingebe.
Jetzt bekomme ich folgenden fehler: Warning: ftp_chdir() [function.ftp-chdir]: This command require a paremeter.
Kann mir jemand helfen, dass der Parameter vom Script angenommen wird?
Vielen Dank
Gruß
Kommentar