Upload Problem
stephan
- php
0 stephan0 Severin Kacianka0 stephan
Hey,
ich habe ein Problem mit folgendem Code, der dazu da sein soll, eine Datei upzuloaden. Ich teste das Ganze auf einem XAMPP-System. Warum funktioniert das nicht?
Hier erstmal der HTML-Teil:
<form action='<? echo $_SERVER['PHP_SELF'].'?site=dateimanager&'.$_SERVER['QUERY_STRING']; ?>' method='post' enctype='multipart/form-data' name='form1' id="form1">
Dateiupload: <input type="hidden" name="flag1" id="flag1" value="1">
<input type="file" name="datei">
|
<input type="submit" name="Submit" value="Hochladen">
</form>
Und jetzt der PHP-Teil ($uvz ist der Verzeichnisname test/upload; newfilename überprüft, ob der Dateiname bereits existiert und hängt ggf. ein (1) bis (n) dran):
if (isset($_POST['flag1'])) {
extract($_POST);
//Und dann checken ob überhaupt eine Datei ausgewählt wurde
if(!isset($datei)){$error = "Keine Datei gewählt!";}
//Das Ganze in die Variable $error
//--------------------------------------------------------
if(!$error) {
$name=$uvz.$datei; // Dateiname inkl. Verzeichnis, in das kopiert werden soll
$name = newfilename($name, 1); //Wenn nicht vorhanden, dann anlegen
//mkdir($name,0755); //mit den entsprechenden Rechten versehen
//Kopieren der Datei auf den Server
copy($datei,$name);// <-------RICHTIG MACHEN! KOPIERFUNKTION EINFÜGEN
}
//--------------------------------------------------------------------
}
Vielen Dank schon mal
STEPHAN
Jetzt hab ich ganz die Fehlermeldung vergessen:
Warning: copy(testdatei.zip) [function.copy]: failed to open stream: No such file or directory in C:\xampp\htdocs\uploadtest\dateiupload.php on line 140
Danke! :D
STEPHAN
Hallo Stephan,
Der Fehler deutet darauf hin, dass es das Verzeichnis in das du Speichern willst nicht gibt.
Dein Code ist nicht sonderlich sauber. Versuch es doch mit dem offiziellen Dateiupload Tutorial: http://de3.php.net/manual/de/features.file-upload.php
Gruß,
Severin
Hey,
alles darauf umgestellt, doch nun bekomme ich folgende Fehlermeldung:
Possible file upload attack! Here's some debugging info:
Array
(
)
Ist es möglich, dass einfach der Dateiname/Pfad nicht richtig gesendet wird? Kann das in dem Fall an XAMPP liegen?
Danke!
STEPHAN
Hallo stephan,
Ist es möglich, dass einfach der Dateiname/Pfad nicht richtig gesendet wird? Kann das in dem Fall an XAMPP liegen?
Kannst du deinen neuen Code noch einmal komplett posten? Die Fehlermeldung zeigt an, dass das angehaenge Bild nicht an den Server uebermittelt wird. Ein populaerer Fehler ist beim Formular das enctype="multipart/form-data" zu vergessen.
Gruß,
Severin
Hey,
also der Code sieht so aus:
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
print "File is valid, and was successfully uploaded. Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
und dann das als Eingabe:
<form enctype="multipart/form-data" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
Dateiupload: <input type="hidden" name="flag1" id="flag1" value="1">
<input name="userfile" type="file">
|
<input type="submit" name="Submit" value="Hochladen">
</form>
Danke!
STEPHAN
Hallo,
Hast du $uploaddir gesetzt? Es scheint irgendeine Kleinigkeit zu sein. Ist das alles was in deiner Datei steht?
Gruß,
Severin
Hey,
sry, das ist ja echt dumm -.- Man müsste eben nicht noch ein Rest- </form> drin haben, das zu viel ist und von einem bereits gelöschten Formular stammt -.-
Vielen Dank dennoch für Deine Mühe!!!
STEPHAN