dateinamen veraendern

Habe mein Problem geloest. Die Fotogalerie funktioniert.
Die grossen Fotos werden nach folgendem Schema benannt:
001foto.jpg
002foto.jpg
usw.

die Thumb-Pendants heissen :
001foto_thumb.jpg
002foto_thumb.jpg
usw.

funktioniert klasse!
wenn jemand wissen moechte, wie es geklappt hat, einfach bescheid sagen.

Danke fuer die Tipps!
 
Bescheid - es sollte eigentlich immer die Lösung hier gepostet werden, damit man sie über die Suche auch findet ...
 
Erlaeuterungen zum Code:
Erst wird geguckt, ob der Dateiname nach dem Schema 001_name.jpg aufgebaut ist.
wenn nicht, wird einfach ein 001_ davorgeklatscht.
Jetzt kommt die while-Schleife. In ihr wird geguckt, ob die Datei schon existiert. Wenn ja, dann wird die Zahl davor um eins erhoeht. Und das eben solange, bis der Dateinamen nicht existiert. Nun kann die Datei unter dem Namen abgespeichert werden.
Am Ende des Scripts wird dann noch der Thumbname generiert.
Hoffe, es hilft einigen weiter.
Wenn ihr Verbesserungen seht, sagt bitte bescheid :)


Code:
if (!preg_match("!^([0-9]{3})(_{1})$!",substr($datei_name,0,4))) $bild_name="001_".$datei_name;

while (file_exists("$upload_path/$bild_name")) {

$ersten3 = substr($bild_name,0,3);
$ersten3++;
if ($ersten3 < 10) $bild_name=substr_replace($bild_name,"00".$ersten3,0,3);
elseif ($ersten3 < 100) $bild_name=substr_replace($bild_name,"0".$ersten3,0,3);
else $bild_name=substr_replace($bild_name,$ersten3,0,3);


}
move_uploaded_file($tmp_name,"$upload_path/$bild_name") OR die("Fehler beim Verschieben in Bilderordner");


// Ermitteln der Dateiendung
$pos = strrpos($datei_name,'.') + 1;
$file_ext = substr($datei_name,$pos);
switch(strToLower($file_ext)) {
  case 'png':
  $image_src = imageCreateFromPng("$upload_path/$bild_name");
  break;

  case 'jpeg':
  case 'jpg':
  $image_src = imageCreateFromJPEG("$upload_path/$bild_name");
  break;
  default:
  // Entfernen der Datei
  die("Es werden nur die Dateiendungen JPG, JPEG und PNG angenommen.");
  break;
}


$maxpix = 100;
$dest_w = 0;
$dest_h = 0;

// Ermitteln des Thumbnamens
$position = strrpos($bild_name,'.');
$thumbname = substr_replace($bild_name,"_thumb.",$position,-3);
 
Und was passiert beim 1000. Bild mit dem gleichen Namen?

Ich würde gucken, wo der erste Unterstrich im Dateinamen ist und danach gucken, ob der Teil davor eine Zahl ist. Und dann evtl. erhöhen.

Mamphil
 
Stimmt, das ist wirklich ein guter Tipp, danke!
Wenn ich das fertig habe, poste ich es hier wieder.
 
Zurück