Bilder hochladen, kopieren und verkleinern

OK, da das anklicken von Links und dem durchlesen der dahinterliegenden Texte anscheinend ein Problem für dich darstellt und ich heute meinen gutmütigen Tag habe, hier mal folgendes:
bool move_uploaded_file ( string filename, string destination )

Diese Funktion prüft, ob die mit filename bezeichnete Datei eine gültige Upload-Datei ist (d.h., dass sie mittels PHP's HTTP POST Upload-Mechanismus upgeloaded wurde). Ist die Datei gültig, wird sie zum in destination bezeichneten Dateinamen verschoben.
Wenn filename keine gültige Datei ist, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück.
Wenn filename eine gültige Datei ist, jedoch aus irgendeinem Grund nicht verschoben werden kann, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück. Zusätzlich wird eine Warnung ausgegeben.

D.h. wenn du die Datei $tempname irgendwohin verschiebst, dann kannst du im weiteren Verlauf des Scripts natürlich nicht mehr darauf zu greifen.

Die Erfolgsmeldung, ob die Datei verschoben wurde, macht so auch wenig Sinn, ändere das mal so ab und setze den move_upload_file Befehl wieder an die alte Stelle(ganz nach unten), wie weiter oben schon von mir so beschrieben:
PHP:
imagejpeg( $tempname, 'upload/images/thumbs/'.$newImg, 100);  

if (move_uploaded_file($tempname,'foto/'.$name)) {
     echo 'Die Datei '.$name.' wurde erfolgreich hochgeladen!<br>'; 
} else {
     echo 'Die Datei '.$name.' konnte nicht hochgeladen werden!<br>';
}

Sorry, wenn ich jetzt mal ein bisschen den Oberlehrer gebe, aber du willst ja sicherlich dabei auch was lernen...

Probier das bitte mal aus und meld dann halt wieder, wenns Probleme gibt.
 
Ähem, der letzte Post war von mir und nicht von Sturmi, allerdings bin ich grad nicht zu Hause, sondern bei meiner Freundin, und da hab einfach fröhlich drauf losgepostet, ohne zu merken, daß ich ja gar nicht unter meinem Account eingeloggt bin..... ;-)
 
Ok wir haben hier vielleicht ein kleines Kommunikations problem.

Ich möchte wissen wie ich die Datei $tempname kopieren kann, zb so:

$_FILES Kommt an, wird zu $tempname, jetzt sollte die Datei verzweifacht werden,
also, $tempname1 und $tempname2.
wen ich wüsste wie das geht hätte ich kein Problem mehr, den ich muss nicht wissen wie ich die Datei $tempname Speichern oder verkleinern muss sondern wie ich sie Duplizieren kann, damit ich ein Duplikat in original Format und das andere Duplikat verkleinert Speichern kann. Das Speichern der Date stellt mir keine Probleme mehr dar.

Ich hoffe Ihr versteht mich jetzt besser.

Danke das Ihr euch solche mühe gebt, muss ich an dieser Stelle mal erwähnen.
 
Das passiert mit deinem Vorschlag:

Code:
Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\serverII\xampp\htdocs\rossi\upload.php on line 35
Die Datei rossi 001.jpg wurde erfolgreich hochgeladen!

Die Datei rossi 001.jpg wird als original bild Hochgeladen!

folgender code wird verwendet:
PHP:
<? 
if (isset($_FILES)) 
  { 
    for($i = 0; $i < count($_FILES['file']['tmp_name']); ++$i) //erzwingt das jede datei eine eindeutige zuweisung erhält [0], [1], [2], usw 
      { 
        $tempname = $_FILES['file']['tmp_name'][$i]; //temporärer name 
        $name     = $_FILES['file']['name'][$i]; //entgültiger name 
         
        if (is_uploaded_file($tempname)) //lädt die temporäre datei hoch 
          { 
            $im_temp = imagecreatefromjpeg($tempname); //Ich gehe jetzt einfach mal davon aus das es JPEGs sind 
            $size = getimagesize("$tempname");
  			$height_orig = $size[1];
  			$width_orig = $size[0];
  			$height = 150;
  			$width = 200; 

            //Wobei mir hier nicht klar ist was in $width steht... 
            if ($width && ($width_orig < $height_orig)) 
            { 
               $width = ($height / $height_orig) * $width_orig; 
             } 
             else 
            { 
               $height = ($width / $width_orig) * $height_orig; 
             } 

             //Thumbnail-Rohling erstellen 
             $newImg =  imagecreatetruecolor($width, $height); 

             //Das original Bild auf den Thumbnail kopieren 
             imagecopyresampled($newImg, $im_temp, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 
      
             //Den Thumbnail als $tempname in höchster Qualität speichern 
imagejpeg( $tempname, 'thumb/'.$newImg, 100);   

if (move_uploaded_file($tempname,'foto/'.$name)) { 
     echo 'Die Datei '.$name.' wurde erfolgreich hochgeladen!<br>';  
} else { 
     echo 'Die Datei '.$name.' konnte nicht hochgeladen werden!<br>'; 
}  
 
          } 
      } 			
}
?>

mit volgende Formular wird es übertragen:
HTML:
form method="POST" enctype="multipart/form-data" action="upload.php">
	<p><input type="file" name="file[]"><input type="submit" value="send" name="senden></p>
</form>

Aber das Beantwortet meine zulezt gestellte frage immer noch nicht.
Mir ist auch bewusst das die datei $tempname nach move_upload_file nicht mehr existiert,
aber ich möchte wissen aob man die datei $tempname nicht vor move_upload_file Duplizieren kann?
 
@Gumbo

In meinem Fall wäre das dan so:
PHP:
imagejpeg($newImg, "$tempname", 100);

Doch das löst mein problem immer noch nicht, gibt es den nicht eine Möglichkeit
die Datei $tempname zu Duplizieren?
 
Na ihr? :)

Das habt Ihr mir sicher nicht Zugetraut *ggggg*

Funktionsfähiges Script wo ein Original in den Ordner "images/" wandert,
und wo eine Duplikat verkleinert als "thumb_Dateiname.gif" im Ordner thumb landet!

Das möchte ich euch nicht vorenthalten :)
PHP:
<?
if (isset($_FILES)) 
	{
		for($i = 0; $i < count($_FILES['file']['tmp_name']); ++$i)
			{
				$tempname = $_FILES['file']['tmp_name'][$i];
				$original = $_FILES['file']['tmp_name'][$i];
				$name     = $_FILES['file']['name'][$i];
        	
				if (!copy($original, 'foto/'.$name)) 
					{
						echo ('Fehler beim Original erstellen -> '.$name.'...<br>\n');
					}
        		
				if (is_uploaded_file($tempname)) 
					{ 
						$im_temp = imagecreatefromjpeg($tempname); 
						$size = getimagesize("$tempname");
						$height_orig = $size[1];
						$width_orig = $size[0];
						$height = 150;
						$width = 200; 

						if ($width && ($width_orig < $height_orig)) 
							{ 
								$width = ($height / $height_orig) * $width_orig; 
							} 
						else 
							{ 
								$height = ($width / $width_orig) * $height_orig; 
							} 
							 
						$newImg = 	imagecreatetruecolor($width, $height);
									imagecopyresampled($newImg, $im_temp, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 
									imagejpeg($newImg, '$tempname', 100); 
									move_uploaded_file($tempname, 'thumb/thumb_'.$name);						
						echo 'Die Datei '.$name.' wurde erfolgreich hochgeladen!<br />';
						echo 'Die Datei thumb_'.$name.' wurde erfolgreich verkleinert!<br />'; 
					} 
			} 			
	}
?>

PS: Das ist Alles selbst geschrieben "Stolz Bin"
 
Na, das mit dem "alles selbst geschrieben", sei mal so dahin gestellt.... :)

Du solltest dir für die Zukunft angewöhnen, dein Posts etwas genauer zu formulieren und auf die Hilfestellungen anderer etwas kooperativer zu reagieren, anstatt sie einfach zu ignorieren.
Du hast außerdem immer noch einen Fehler im Code:
Die Erfolgsmeldung, ob die Datei verschoben wurde, macht so auch wenig Sinn, ändere das mal so ab ....
PHP:
if (move_uploaded_file($tempname,'foto/'.$name)) { 
     echo 'Die Datei '.$name.' wurde erfolgreich hochgeladen!<br>';  
} else { 
     echo 'Die Datei '.$name.' konnte nicht hochgeladen werden!<br>'; 
}
Nix für ungut.... ;)
 
Zurück