Datei-Upload geht nicht mehr

medico

Erfahrenes Mitglied
Hallo zusammen,

ich habe mir vor längerer Zeit mal ein Datei-Uploadscript zusammen gebaut.
Das hat auch immer gut geklappt. Nur seit kurzem werden die Datein nicht mehr hochgeladen. Könnt Ihr Euch das mal anschauen und mir evtl sagen voran das liegt?

Also die Datei zum hochladen liegt bei mit im admin-Ordner
admin/upload.php
PHP:
<? include ("inc/db.inc.php");
if ($_POST["submit"]) {
    if($_FILES['Datei']['tmp_name'])
    { 
		$filename = $_FILES['Datei']['name'];
        move_uploaded_file($_FILES['Datei']['tmp_name'], "../intern/doc/$filename");
$sql = "INSERT INTO dokumente (titel,file_name,kat,art) VALUES ('$_POST[titel]','$filename','$_POST[kat]','$_POST[art]')";

$result = mysql_query($sql,$db);

echo "<script language='javascript'>window.alert('Das Dokument wurde aufgenommen!'); window.document.location.href = 'edit_doc.php'; </script>";
} }
Das Upload-Formular dazu sieht so aus:
PHP:
.......
 <form action="upload.php" method="post" enctype="multipart/form-data">
<input name="Datei" type="file">
<input name="kat" type="text" id="kat">
<input name="titel" type="text" id="titel">
<input type="radio" name="art" value="pdf">
 <input type="radio" name="art" value="doc">
<input type="radio" name="art" value="exl">
......usw
Die Daten werden auch in die DB eingetragen, nur der Upload funktioniert nicht. Komisch.
Die Ordnerrechte sind auch auf 777

Wo ist mein Fehler?

Gruß Medico
 
Hm.
Ich weiß es leider auch nicht genau, bzw. sehe da nichts, aber vielleicht ist es das hier:
PHP:
move_uploaded_file($_FILES['Datei']['tmp_name'], "../intern/doc/".$filename);
Ich würde dir im Übrigen empfehlen Dateien niemals ohne Überprüfung hochzuladen, sei es der Dateityp, oder einfach nur der Name!
 
Hallo Jon,

danke für Deine schnelle Antwort, aber daran liegt es auch nicht. Habe es mal schnell probiert.

Ich würde dir im Übrigen empfehlen Dateien niemals ohne Überprüfung hochzuladen, sei es der Dateityp, oder einfach nur der Name!
Das ist richtig, aber da mein Script in einem Passwort-Geschützen Verzeichnis liegt ist das doch nicht notwendig.
 
Warum prüfst du nicht selber mit print_r($_FILES) ob überhaupt Daten übermittelt werden ?
Wo ist das Problem ?
 
Häää ?
Na in deinen Code print_r($_FILES) bzw. print_r($_POST) einfügen ...
Dann siehst du, ob überhaupt etwas übergeben wird.
 
Achso *g*

Dann kommt bei mir folgende Meldung, die ich nicht ganz verstehe:
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/tmp/phpuCzX8v) is not within the allowed path(s): (/srv/www/htdocs/web14/html) in /srv/www/htdocs/webXX/html/admin/upload.php on line 12

Warning: move_uploaded_file(/tmp/phpuCzX8v) [function.move-uploaded-file]: failed to open stream: Operation not permitted in /srv/www/htdocs/webXX/html/admin/upload.php on line 12

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpuCzX8v' to '../intern/doc/105-03_07.pdf' in /srv/www/htdocs/webXX/html/admin/upload.php on line 12

Line 12:
PHP:
 move_uploaded_file($_FILES['Datei']['tmp_name'], "../intern/doc/$filename");
 
Also der Grund duerfte wohl sein, dass PHP nun restriktiver eingestellt ist und somit nicht mehr auf das gewuenschte Verzeichnis zugegriffen werden kann.
Daran kannst Du in dem Fall, meiner Meinung nach, leider nichts machen, zumindest nicht wenn Du keinen Zugriff auf die php.ini hast, denn es wird hier nicht der Zugriff auf den Zielpfad verweigert sondern auf /tmp, wo die Dateien nach dem Upload erstmal ausgelagert werden.
 
Zurück