UPLOAD Tutorial

PHP:
if(empty($err)) {
    copy("$tempname", "img/$name");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
 
Danke, das hat mir schonmal geholfen.

Habe trotzdem noch ein Problem:

PHP:
#Bild Upload:
	$tempname = $_FILES['bild_NA']['tmp_name']; 
	$Dname = $_FILES['bildNA']['Dname'];
	
	$type = $_FILES['file']['type']; # Dateityp
	$size = $_FILES['file']['size']; # Dateigrösse
	
	#<font color=\"#FF0000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Nur gif und jpeg Dateien d&uuml;rfen hochgeladen werden. </strong></font> \";
	if($type != "image/gif" && $type != "image/pjpeg") {
	   $err[] = "Nur gif und jpeg Dateien d&uuml;rfen hochgeladen werden.";
	} 
	if($size > "100000") { 
	   $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!";
	} 
	
	if(empty($err)) { 
	   copy("$tempname", "img/$Dname");
	   echo "<font color=\"#FF0000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Nur gif und jpeg Dateien d&uuml;rfen hochgeladen werden. </strong></font> \n";
	} 
	else { 
	   foreach($err as $error) 
	   echo "$error<br>"; 
	}

Es kommt immer die Meldung:
Nur gif und jpeg Dateien dürfen hochgeladen werden.

Habe schon verschiedene GIF und JPEGS ausprobiert. Immer das gleiche
?
 
Weiss nicht. Wenn ich Gedanlen lesen könnte wäre ich Milionär:)

Aber ich habe rausgefunden das die Variable bild_NA nicht korrekt übergeben wird.
Wollte sie mir nämlich mit ECHO ausgeben lassen, aber wird nichts angezeigt. Alle
anderen Variablen werden richtig übergeben.

PHP:
 # VARIABLEN übernehmen
				$name = $HTTP_POST_VARS["name"];
				$kategorie = $HTTP_POST_VARS["kategorie"];
	$preis= $HTTP_POST_VARS["preis"];
				$datum = $HTTP_POST_VARS["datum"];
	$verfasser = $HTTP_POST_VARS["verfasser"];
				$text = $HTTP_POST_VARS["text"];
	$wertung= $HTTP_POST_VARS["wertung"];
				$bild_NA = $HTTP_POST_VARS["bild_NA"];
								
	#Bild Upload:
	$tempname = $_FILES['bild_NA']['tmp_name']; 
	$Dname = $_FILES['bildNA']['Dname'];

Eigenartig das ganze.
Das Dateifeld aus der der Name übernommen wird heisst auch
bild_NA
Habe das schon gecheckt. Eigenartig!
 
Zuletzt bearbeitet:
PHP:
    $tempname = $_FILES['bild_NA']['tmp_name'];
    $Dname = $_FILES['bild_NA']['name'];
    
    $type = $_FILES['bild_NA']['type']; # Dateityp
    $size = $_FILES['bild_NA']['size']; # Dateigrösse

Ich hatte erwartet du klickst den Link und durchschaust die Logik des $_FILES - Array's.
 
Zuletzt bearbeitet:
Was hat das ganze mit meinen Problem zu tun?

Der Code stammt aus einem Tut von hier und sollte doch funktionieren.
Ich hab das mit dem $_FILES schon verstanden. Aber der link biettet mir auch keine
konkrete Lösung meines Problems.

Ich teste mal kurz Deinen Vorschlag. Aber wie gesagt die Variable wird glaube ich nicht
richtig übergeben.
 
Zuletzt bearbeitet:

Warning: copy(img/) [function.copy]: failed to create stream: Is a directory in ***********************************/testcenter_parts/admin_save.php on line 56

ich denke es liegt an der nicht übergebenen Variable aus dem Formular.


 
Also:

HTML:
<input name="bild_NA" type="file" id="bild_NA">

Da sollte die Variable übergeben werden. Alle anderen Variablen aus dem Formular
werden koreckt übergeben. Wieso diese nicht. Ist bei einem Iinput Feld vom Typ "File" irgend eine eigenart die man beachten sollte?
 

Leute ich verzweifel grade! Ich bin seit Stunden da dran und es klappt einfach nicht.

PHP:
# VARIABLEN übernehmen
				$name = $HTTP_POST_VARS["name"];
				$kategorie = $HTTP_POST_VARS["kategorie"];
				$preis= $HTTP_POST_VARS["preis"];
				$datum = $HTTP_POST_VARS["datum"];
				$verfasser = $HTTP_POST_VARS["verfasser"];
				$text = $HTTP_POST_VARS["text"];
				$wertung= $HTTP_POST_VARS["wertung"];
				#$bild_NA = $_FILES["bild_NA"];
				#$bild_NA = $_FILES["bild_NA"] ["dname"];
 
	#Bild Upload:
	$tempname = $_FILES['bild_NA']['tmp_name'];
			 #$Dname = $HTTP_POST_FILES['bild_NA']['Dname'];
				 $Dname = $bild_NA;
 
	echo "<font color=\"#FF0000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">$Dname</font><br>\n";
				$type = $_FILES['bild_NA']['type']; # Dateityp
				$size = $_FILES['bild_NA']['size']; # Dateigrösse
 
	#<font color=\"#FF0000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Nur gif und jpeg Dateien d&uuml;rfen hochgeladen werden. </strong></font> \";
	if($type != "image/gif" && $type != "image/pjpeg") {
	 $err[] = "Nur gif und jpeg Dateien d&uuml;rfen hochgeladen werden.";
	} 
	if($size > "100000") { 
	 $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!";
	} 
 
	if(empty($err)) { 
	 copy("$tempname", "img/$Dname");
	 echo "<font color=\"#FF0000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Nur gif und jpeg Dateien d&uuml;rfen hochgeladen werden. </strong></font> \n";
	} 
	else { 
	 foreach($err as $error) 
	 echo "$error<br>"; 
	}

Hab schon alle Variationen durchprobiert. So ist die einzigste Einstellung wie ich wenigstens ein Ausgabe bei echo "$dname"´bekomme. Zwar nicht den Dateinamen sondern nur irgend etwas: tmp/phpnePdrO

Und die Fehlermeldung:
Warning: copy(img//tmp/phpnePdrO) failed to create stream: No such file or directory in /*****************/admin_save.php on line 57

Ich weiss nicht mehr weiter. Ich bin kurz davor den Monitor zu zertrümmern. Ich habe keine Ahnung wieso das nicht geht. Ich sitze schon seit stunden an diesem Problem.:(
Ich habe im Internet gesucht, aber keine brauchbaren Infos gefunden.
 
Zurück