• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit Umbennen von Datei beim Upload

stvn

Neues Mitglied
Moin.

Ich habe einen Bildupload. Dieser funzt soweit fehlerfrei.

Nun möchte ich jedoch, dass das Bild umbenannt wird. Und da scheiterts, denn nun wird das Bild nicht mehr ins gewünschte Verzeichnis geladen. Eine Fehlermeldung erscheint nicht.

Ich habe die Zeilen mit !!! "markiert", welche ich dafür geändert habe und seit dem es nicht mehr funktioniert.

HTML:
<form method="POST" action="imageupload.php" enctype="multipart/form-data">
	<label for="image">ImageTest</label>
	<input type="file" name="datei"/>
	<input type="submit" name="submit" value="Bild hochladen"/>
</form>

PHP:
include "config.php"; 
$verzeichnis = "img/test";
$new_name = "hallo.jpg"; // !!!

PHP:
if (isset($_POST["submit"])) {
	$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
	if($dateityp[2] = 2) {
		if($_FILES['datei']['size'] <  307200) {
			move_uploaded_file($_FILES['datei']['tmp_name'], "$verzeichnis/$new_name"); // !!!
			echo "Das Bild wurde erfolgreich nach $verzeichnis/$new_name hochgeladen";
		} else {
			echo "Bild zu groß - max. 300kb";
		}
	} else {
		echo "Falsches Format - nur .jpg";
	}
}

Ich vermute den Fehler ja hier: move_uploaded_file($_FILES['datei']['tmp_name'], "$verzeichnis/$new_name");
Doch ich weiß absolut nicht, wie ich es sonst schreiben sollte, habe schon diverse Varianten probiert, doch da kam dann immer gleich 'ne Fehlermeldung.

Danke!
stvn
 
Werbung:
Hallo,

nicht probieren, sondern die Doku lesen.
PHP: getimagesize - Manual
und
PHP: move_uploaded_file - Manual

Du änderst das nun wie folgt:

PHP:
include "config.php";  
$verzeichnis = "img/test"; 
$new_name = "hallo.jpg"; // !!!

in
PHP:
include "config.php";  
$new_name = "img/test/hallo.jpg"; // !!!
und
PHP:
 move_uploaded_file($_FILES['datei']['tmp_name'], "$verzeichnis/$new_name"); // !!!
in
PHP:
 move_uploaded_file($_FILES['datei']['tmp_name'], $new_name); // !!!

Du musst aber jetzt aufpassen, weil jede neue Datei die alte überschreibt, es wird keine neue Datei angelegt. Es existiert nur hallo.jpg!
 
Also die Doku habe ich mir durchgelesen. Nur das half mir auch nicht weiter...

Das Problem war also auf gut deutsch der Slash. :D Habe den mit in $verzeichnis genommen und nun funktionierts. :)

Ich bedanke mich recht herzlich! :)
 
Werbung:
Wie jetzt? Was denn noch? :shock:
Ich meine mehr wurde doch letztlich nicht geändert. :shock:

EDIT:
Aahh, und die "". Jetzt hab ichs gecheckt. *schäm*
 
PHP:
"$verzeichnis/$new_name"
steht bei dir in doppelten Anführungsstrichen, du wolltest aber den Inhalt der Variablen und nicht den Variablennamen, das ist der andere Fehler gewesen.
 
Werbung:
PHP:
if($dateityp[2] = 2) {

Das ist so auch nicht richtig, so wie du das machst ist das eine Zuweisung, und kein Vergleich ;)
 
Zurück
Oben