[Upload] Script macht bei Mozilla, Opera Probleme

muhkuh

Erfahrenes Mitglied
Huhu,

Ich hab mir ein feines kleines und sehr praktisches Uploadscript für Bilder gebastelt. Das funktioniert auch wunderbar, nur eben bei Verwendung des Internet Explorer.
Das gleiche Problem hab ich auch beim phpBB Board gesehen, daher glaube ich nicht, dass das an meinem Script liegt.

Das Problem im speziellen liegt darin, dass ich über $_FILES['datei']['name'] nicht mehr auf die Datei zugreifen kann, sondern darin die Temporär angelegte Datei gespeichert wird.

Ich hab keine Ahnung, wie sich das lösen liesse :(
 
Ich konnte dein Problem weder mit Mozilla, noch mit Opera, nachstellen.

Es ist dort immer der Originalname gespeichert... zeig mal dein Skript.
 
Die Übersicht im Code lässt evtl. ein wenig zu wünschen übrig :/
PHP:
for($i = 0; $i < count($_FILES['image']['name']); $i++){ 
		if ($_FILES['image']['name'][$i] != "") { 
				$TmpImg = $_FILES['image']['tmp_name'][$i]; 
				$NameImg = $_FILES['image']['name'][$i]; 
				$TypeImg = $_FILES['image']['type'][$i]; 
				$SizeImg = $_FILES['image']['size'][$i];
				$GetExtensionImg = explode(".",$NameImg);
				$ImageName = $GetExtensionImg[0];
				$ExtensionImg = strtolower(array_pop($GetExtensionImg));
				if($ExtensionImg == $AllowedExtensions[$TypeImg]) {
					$Extension = ".".$ExtensionImg;
					$DBimage = ltrim($ImageName).".".date("ymd").".".date("is").$Extension;
					$image = "L.".$DBimage; 
					 $thumb = "M.".$DBimage; 
					  $dot = "S.".$DBimage; 
					// Definieren Ordnernamen
					$Dir_Images = "bilder/";
					$Dir_Temp = "_temp_/";
					move_uploaded_file($TmpImg, $Dir_Temp.$DBimage);
					// Bilddaten ermitteln 
					$ImageData = getimagesize($Dir_Temp.$DBimage); 
					$breite = $ImageData[0]; 
					$hoehe = $ImageData[1]; 
					$dateityp = $ImageData[2];
					// Abmessugen des Medium Image (THUMB, M)
					$neueBreiteThumb = 320; 
					$neueHoeheThumb = ceil(intval($hoehe*$neueBreiteThumb/$breite)); 
					// Abmessugen des Large Image (IMAGE, L)
					$maxBreiteImage = 760;
					if ($breite > $maxBreiteImage) {
						$neueBreiteImage = $maxBreiteImage;
					} else {
						$neueBreiteImage = $breite;
					}
					$neueHoeheImage = ceil(intval($hoehe*$neueBreiteImage/$breite)); 
					# falls Hoehe des Bildes zu groß
					if ($neueHoeheImage > 600) {
						$neueHoeheImage = 600;
						$neueBreiteImage = ceil(intval($breite*$neueHoeheImage/$hoehe));
					} 
					// Abmessugen des Small Image (DOT, S)
					$neueBreiteDot = 60;
					$neueHoeheDot = 45;
					 if($dateityp == 1) { 
						// GIF -> Image
						$altesBild2=imagecreatefromgif($Dir_Temp.$DBimage); 
						$neuesBild2=imagecreatetruecolor($neueBreiteImage,$neueHoeheImage); 
						imagecopyresampled($neuesBild2,$altesBild2,0,0,0,0,$neueBreiteImage,$neueHoeheImage,$breite,$hoehe); 
						imagegif($neuesBild2,$Dir_Images.$DBimage); 
						// GIF -> TempImage löschen
						unlink($Dir_Temp.$DBimage);
						// GIF -> Thumbnail 
						$altesBild=imagecreatefromgif($Dir_Images.$image); 
						$neuesBild=imagecreatetruecolor($neueBreiteThumb,$neueHoeheThumb); 
						imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreiteThumb,$neueHoeheThumb,$neueBreiteImage,$neueHoeheImage); 
						imagegif($neuesBild, $Dir_Images.$thumb); 
						// GIF -> Dot
						$altesBild3=imagecreatefromgif($Dir_Images.$thumb); 
						$neuesBild3=imagecreatetruecolor($neueBreiteDot,$neueHoeheDot); 
						imagecopyresampled($neuesBild3,$altesBild3,0,0,0,0,$neueBreiteDot,$neueHoeheDot,$neueBreiteThumb,$neueHoeheThumb); 
						imagegif($neuesBild3,$Dir_Images.$dot); 
					} 
					elseif($dateityp == 2) { 
						// JPG -> Image
						$altesBild2=imagecreatefromjpeg($Dir_Temp.$DBimage); 
						$neuesBild2=imagecreatetruecolor($neueBreiteImage,$neueHoeheImage); 
						imagecopyresampled($neuesBild2,$altesBild2,0,0,0,0,$neueBreiteImage,$neueHoeheImage,$breite,$hoehe); 
						imagejpeg($neuesBild2,$Dir_Images.$image);  
						// JPG -> TempImage löschen
						unlink($Dir_Temp.$DBimage);
						// JPG -> Thumbnail
						$altesBild=imagecreatefromjpeg($Dir_Images.$image); 
						$neuesBild=imagecreatetruecolor($neueBreiteThumb,$neueHoeheThumb); 
						imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreiteThumb,$neueHoeheThumb,$neueBreiteImage,$neueHoeheImage); 
						imagejpeg($neuesBild,$Dir_Images.$thumb); 
						// JPG -> Dot
						$altesBild3=imagecreatefromjpeg($Dir_Images.$thumb); 
						$neuesBild3=imagecreatetruecolor($neueBreiteDot,$neueHoeheDot); 
						imagecopyresampled($neuesBild3,$altesBild3,0,0,0,0,$neueBreiteDot,$neueHoeheDot,$neueBreiteThumb,$neueHoeheThumb); 
						imagejpeg($neuesBild3,$Dir_Images.$dot);
					} 
					elseif($dateityp == 3) { 
						// PNG -> Image
						$altesBild2=imagecreatefrompng($Dir_Temp.$DBimage); 
						$neuesBild2=imagecreatetruecolor($neueBreiteImage,$neueHoeheImage); 
						imagecopyresampled($neuesBild2,$altesBild2,0,0,0,0,$neueBreiteImage,$neueHoeheImage,$breite,$hoehe); 
						imagepng($neuesBild2,$Dir_Images.$Img.$ExtensionImg); 
						// PNG -> TempImage löschen
						unlink($Dir_Temp.$DBimage);
						// PNG -> Thumbnail
						$altesBild=imagecreatefrompng($Dir_Images.$image); 
						$neuesBild=imagecreatetruecolor($neueBreiteThumb,$neueHoeheThumb); 
						imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreiteThumb,$neueHoeheThumb,$neueBreiteImage,$neueHoeheImage); 
						imagepng($neuesBild,$Dir_Images.$thumb); 
						// PNG -> Dot
						$altesBild3=imagecreatefrompng($Dir_Images.$thumb); 
						$neuesBild3=imagecreatetruecolor($neueBreiteDot,$neueHoeheDot); 
						imagecopyresampled($neuesBild3,$altesBild3,0,0,0,0,$neueBreiteDot,$neueHoeheDot,$neueBreiteThumb,$neueHoeheThumb); 
						imagepng($neuesBild3,$Dir_Images.$dot); 
					}
				  if (file_exists($Dir_Images.$image) && file_exists($Dir_Images.$thumb) && file_exists($Dir_Images.$dot)) {
					$sql = mysql_query("INSERT INTO ".TBL_PREFIX."_image 	(
																		kategorie,
																		typ,
																		image,
																		user_id
																	) VALUES (
																		'".$_POST["kategorie"]."',
																		'".$_POST["typ"]."',
																		'".$DBimage."',
																		'".$_POST["user_id"]."'
																	)",CONN);	
				  } else {
				  	header("Location:referer.php?s=".$_POST["typ"]."&a=addimage&fehler=datei");
				  }															
				} 
		} else {
			header("Location:referer.php?s=".$_POST["typ"]."&a=addimage&fehler=format");
		}
	}
		header("Location:referer.php?s=".$_POST["typ"]."&a=details&id=".$_POST["kategorie"]);

Ich hoffe ihr könnt damit was anfangen, bin natürlich auch für Änderungen, die nicht direkt was mit meinem Problem zu tun haben, offen.

PS: Die for-Schleife, die das gesamt Script einschliesst, dient dazu mehrere Bilder gleichzeitig hochzuladen.
 
Zuletzt bearbeitet:
Zurück