Input-Felder hinzufügen

PHP:
<?php

if(isset($_FILES['file']) && is_array($_FILES['file'])) 
{ 
  foreach($_FILES['file'] as $k=>$v) 
    { 
      $tempname = $_FILES['file']['tmp_name'][$k];  
	  $name = $_FILES['file']['name'][$k]; 
      $size = $_FILES['file']['size'][$k];  
	  
	  if($size > "15000") {  
      $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";  
	  } 
	  if(empty($err)) {  
    	copy("$tempname", "$name");  
    	echo "Die Datei $name wurde erfolgreich hochgeladen!";  
		}  
		else {  
    foreach($err as $error)  
    echo "$error<br>";  
}  
 
 
    } 
} 

?>
hier ist mein umgeänderter Code und das ist die Ausgabe aber es gibt kein Bild
Code:
Die Datei wurde erfolgreich hochgeladen!Die Datei wurde erfolgreich hochgeladen!Die Datei wurde erfolgreich hochgeladen!Die Datei wurde erfolgreich hochgeladen!Die Datei wurde erfolgreich hochgeladen!
 
um die Datei zu verschieben, verwende move_uploaded_file()
Und dann schau dir mal den Aufbau von $_FILES an....per
PHP:
foreach($_FILES['file'] as $k=>$v) 
    { 
      $tempname = $_FILES['file']['tmp_name'][$k];  
      $name = $_FILES['file']['name'][$k]; 
      $size = $_FILES['file']['size'][$k];
...kommst du da nicht ans Ziel, denn $_FILES ist ein assoziativer Array mit den Elementen name, size usw.
 
Dies wäre eine Möglichkeit:
PHP:
<?php
if(isset($_FILES['file']) && is_array($_FILES['file']['error'])) 
{ 
  foreach($_FILES['file']['error'] as $k=>$v) 
    { 
      if($v==0)
        {
          $tempname = $_FILES['file']['tmp_name'][$k];  
          $name = $_FILES['file']['name'][$k]; 
          $size = $_FILES['file']['size'][$k];  
	  
          //Prüfung, Fehlerausgabe, Verschieben
        }
    } 
}
?>
 
So ich habs mir jetzt dank deiner Hilfe einigermaßen zusammengebastelt:
PHP:
<?php
if(isset($_FILES['file']) && is_array($_FILES['file'])) 
{ 
  foreach($_FILES['file']['error'] as $k=>$v) 
    { 
		if($v==0)
		{   
			$tempname = $_FILES['file']['tmp_name'][$k];  
		 	$name = $_FILES['file']['name'][$k]; 
	      	$size = $_FILES['file']['size'][$k];  
			
		  
		  		if($size > "5242880") 
				{  
	      			$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 5 MB!";  
		 	 	}
				$time = time();
				$end = strrchr($name, ".");
				$filename = "file_".$time.$k . $end; 
		  		if(empty($err)) 
				{  
	    			move_uploaded_file("$tempname", "img/$filename");  
	    			echo "Die Datei <b>$filename</b> wurde erfolgreich hochgeladen!<br>";  
				} else {  
	    			foreach($err as $error)  
	    			echo "$error<br>";  
				}  
	    } 
	} 
} else {
	echo "Fehler beim Übertragen";
}

?>
Es gibt nur eine Sache wenn ich jetzt eine Datei, sagen wir größer als 10 mb, hochladen will kommt statt der Meldung "Die Datei welche du hochladen willst, ist zu gross. Maximale Dateigrosse beträgt 5 MB!" stattdessen nur "Fehler beim Übertragen". Woran liegt das?

foreach($_FILES['file']['error'] as $k=>$v)
wofür steht eigentlich diese Zeile?
 
Was die Dateigrösse betrifft, da gibt es Limits...wie hoch die bei dir sind sagt dir phpinfo().

Suche dort nach post_max_size und upload_max_filesize.


Zu der Zeile: Irgendwie muss man ja die hochgeladenen Dateien durchlaufen.
Da der Array dafür etwas ungünstig aufgebaut ist, gehe ich eine Ebene tiefer.
Über das Element "error"(ist genauso vorhanden wie bspw. size oder name)...kann man dabei eingangs gleich prüfen, ob beim Upload etwas schiefgelaufen ist oder überhaupt nichts hochgeladen wurde.
 
Zurück