Access denied bei upload per dropdown, seh den fehler einfach nicht


cofter

Erfahrenes Mitglied
Langsam habe ich es glaube ich.
Aber wenn ich jetzt die Datei hochlade kommt von der Var $uploadfile:
$uploadfile = $folder_path_server . $_FILES['selected_file']['name'];

Diese Ausgabe:
UploadFile: /opt/lampp/htdocs/xenos/img/aktion/mkBlue_fo.jpgmkBlue_fo.jpg

Warum hängt er den Dateinamen zweimal an?

Errorcode ist 0, in der Ref. steht das dies beteutet das keine Fehler aufgetreten sind.
Datei ist aber trotzdem noch net aufm Webserver. :suspekt:

Hoffe weiterhin auf Hilfe.

PHP:
<html>
<head>
<title>Upload</title>
</head>
<body>
<form name="upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST"  enctype="multipart/form-data">
Wählen sie den Ordner aus in den, die Datei geladen werden soll.
<br />
<select name="ordner_select">
<?php 
$folder = "../img/";  

if ($handle = opendir($folder))
			{
   				while (false !== ($ordner = readdir($handle))) 
					{
						if (($ordner != '.') && ($ordner != '..'))
							{ 
       						if(is_dir($folder.$ordner)) echo "<option name='selected_folder' value='$ordner'>$ordner</option>";
   							
							}
					}
   				closedir($handle); 
			}

?>
</select>
<br />
<br />
Wählen sie die Datei aus die Hochgeladen werden soll.
<br />
<input type="file" name="selected_file" size="30">
<?php
$host = $_SERVER['HTTP_HOST'];
$web_path_server = "http://".$host."/xenos/".$_POST['ordner_select']."/";

$name = $_FILES['selected_file']['name'];
$type = $_FILES['selected_file']['type'];
$size = $_FILES['selected_file']['size'];
$tmp_name = $_FILES['selected_file']['tmp_name'];
$error = $_FILES['selected_file']['error'];

$folder_path_server = "/opt/lampp/htdocs/xenos/img/". $_POST['ordner_select']."/";
$uploadfile = $folder_path_server . $_FILES['selected_file']['name'];

if ($_REQUEST['selected_file'] && $_REQUEST['ordner_select']) {
 move_uploaded_file($tmp_name, $uploadfile);
}

// DEBUG INFOS
echo "<br />";
echo "UploadFile: " .$uploadfile . $_FILES['selected_file']['name'];
echo "<br />";
echo "error: " .$error;
echo "<br />";
echo "tmp_Name: " .$tmp_name;
echo "<br />";
echo "FileSize: " .$size;
echo "<br />";
echo "FileType: " .$type;
echo "<br />";
echo "web_path_server: " .$web_path_server;
echo "<br />";
echo "folder_path_server: " .$folder_path_server;
echo "<br />";
echo "ordner_selected: " .$_POST['ordner_select'];
echo "<br />";
echo "selected_file: " .$_FILES['selected_file']['name'];
?>
<br />
<input type="hidden" name="MAX_FILE_SIZE" value="300000">
<input type="submit" name"send" value="Hochladen">
</form>
</body>
</html>
 
cofter hat gesagt.:
Langsam habe ich es glaube ich.
Aber wenn ich jetzt die Datei hochlade kommt von der Var $uploadfile:
$uploadfile = $folder_path_server . $_FILES['selected_file']['name'];

Diese Ausgabe:
UploadFile: /opt/lampp/htdocs/xenos/img/aktion/mkBlue_fo.jpgmkBlue_fo.jpg

Warum hängt er den Dateinamen zweimal an?
Weil du den Dateinamen einmal in der Zuweisung $uploadfile = $folder_path_server . $_FILES['selected_file']['name']; anhängst und dann nochmals bei der Ausgabe.

An sich müsste der Code eigentlich so funktionieren. Wird denn eine Fehlermeldung ausgegeben? Wird [phpf]move_uploaded_file[/phpf] ausgeführt? Wenn ja, was wird zurückgegeben?
 

cofter

Erfahrenes Mitglied
Den doppelt angehangen Dateinamen habe ich entfernt.
Irgendwann sieht man den Code vor lauteer Code net mehr. :suspekt:

Bin auch der Meinung das es funktionieren müsste. Tut es aber nicht. :(
btw: CHMOD ist auf 777
$_FILES['selected_file']['error'] Gibt 0 aus, also sollte kein Fehler vorhanden sein.

Hier noch mal das Script.

PHP:
<html>
<head>
<title>Upload</title>
</head>
<body>
<form name="upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST"  enctype="multipart/form-data">
Wählen sie den Ordner aus in den, die Datei geladen werden soll.
<br />
<select name="ordner_select">
<?php 
$folder = "../img/";  

if ($handle = opendir($folder))
			{
   				while (false !== ($ordner = readdir($handle))) 
					{
						if (($ordner != '.') && ($ordner != '..'))
							{ 
       						if(is_dir($folder.$ordner)) echo "<option name='selected_folder' value='$ordner'>$ordner</option>";
   							
							}
					}
   				closedir($handle); 
			}
?>
</select>
<br />
<br />
Wählen sie die Datei aus die Hochgeladen werden soll.
<br />
<input type="file" name="selected_file" size="30">
<?php
$host = $_SERVER['HTTP_HOST'];
$web_path_server = "http://".$host."/xenos/".$_POST['ordner_select']."/";

$name = $_FILES['selected_file']['name'];
$type = $_FILES['selected_file']['type'];
$size = $_FILES['selected_file']['size'];
$tmp_name = $_FILES['selected_file']['tmp_name'];
$error = $_FILES['selected_file']['error'];

$folder_path_server = "/opt/lampp/htdocs/xenos/img/". $_POST['ordner_select']."/";
$uploadfile = $folder_path_server . $_FILES['selected_file']['name'];

if ($_REQUEST['selected_file'] && $_REQUEST['ordner_select']) {
 move_uploaded_file("$tmp_name", "$uploadfile");
}
// DEBUG INFOS
echo "<br />";
echo "UploadFile: " .$uploadfile;
echo "<br />";
echo "error: " .$error;
echo "<br />";
echo "tmp_Name: " .$tmp_name;
echo "<br />";
echo "FileSize: " .$size;
echo "<br />";
echo "FileType: " .$type;
echo "<br />";
echo "web_path_server: " .$web_path_server;
echo "<br />";
echo "folder_path_server: " .$folder_path_server;
echo "<br />";
echo "ordner_selected: " .$_POST['ordner_select'];
echo "<br />";
echo "selected_file: " .$_FILES['selected_file']['name'];
?>
<br />
<input type="hidden" name="MAX_FILE_SIZE" value="300000">
<input type="submit" name"send" value="Hochladen">
</form>
</body>
</html>
 
Zuletzt bearbeitet:

cofter

Erfahrenes Mitglied
Sonst keiner ein Idee warum die Dateien net hochgeladen werden?
Ich häng fest und weiss net mehr wonach ich suchen soll. :(

Bitte helft mir!

Mfg
Marko
 

Neue Beiträge