Datei endung auslesen!

Bushman

Erfahrenes Mitglied
Ich hab da ne Frage, wie kann ich die Dateiendung herausfinden?? Ich bräuchte diese Funktion für nen Upload Script!

Kann vielleicht eienr mal ne Funktion posten??

PHP:
<?php
if ( $sub == "" )
{
?>
<form enctype="multipart/form-data" action="?sub=upload" method="POST">
<input type="file" name="file">
<input type="hidden" name="MAX_FILE_SIZE" VALUE="10000">
<input type="hidden" name="cID" value="17">
<br>
<input type="submit" value="Upload">
</form>
<?php
}
if ( $sub == "upload" )
{
	if ($file_name) 
	{
		$filepath = "pics/";
		$type	  = ".jpg";
		$ziellocation = $filepath.$cID.$type;
		copy($file,$ziellocation);

		unlink($file);
	}
	else
	{
		echo "Keine Datei eingefügt";
	}
}
?>
 
Annahme: Du hast den String der kompletten Datei und willst die Endung herausfinden.

$array = explode(".", $dateiname);
$extension = $array[1];

Tu mir nicht weh wenn ichs falsch verstanden habe und du das alles schon längst weisst :)

Gruss aus der Schweiz
 
Es stimmt schon was du geschrieben hast, es gibt dabei nur ein kleines Problem. Wenn mehr als ein Punkt im Dateinamen ist funktioniert das so nicht.
Wenn du das so machst geht es:
PHP:
$array = explode(".", $dateiname); // wie vorher
$extension = array_pop($array); // diesmal wird sicher das letzte element geliefert
Vorsicht: array_pop() löscht das letzte Element zusätzlich. Das ist egal wenn du einfach nur die Endung haben willst, wenn du das Array aber weiterverarbeiten willst musst du daran denken!
 
Dankeschön, das wars, was ich brauchte :)

Kann mir einer mal genau die Abarbeitung dieses Befehls schreiben??
PHP:
$array = explode(".", $dateiname); 
// Hier liest er ja erst alles nach dem . aus oder wie soll ich das Interpretiern??
$extension = array_pop($array);
// Keine Ahnung :)
 
Kann ich.
PHP:
$array = explode(".", $dateiname); 
// der String $dateiname wird an bei jedem Punkt aufgespalten und die einzelnen Teile werden in einem Array gespeichert
$extension = array_pop($array);
// das letzte Feld des Arrays (in dem die Dateiendung OHNE Punkt steht) wird in $extension gespeichert und dann gelöscht
Die Funktion gibts also z.B. jpg oder gif zurück, nicht aber .jpg oder .gif!
 
und wenn einer etwas OHNE Dateiendung hochläd :) :) :) - mal rein provisorium gefragt ?

dann müsstese denk cih mal gucken ob $extencion nen wert gesetzt hat oder nicht mit

PHP:
if($extension) { echo " wert gesetzt"; } else { echo "Uppload Fehlgeschlagen, da ihre Datei KEINE Endung besitzt *g";}
 
Und wenn einer seinen kleinen Bruder hochladen will weil der ihn zu sehr genervt hat:
PHP:
if (is_little_brother($dateiname) == "true") 
  {
   echo "Behalt ihn, was will ich mit dem?";
  }
Eigentlich ist die Prüfung ob eine Endung vorhanden ist schon in der ersten Funktion mit drin, denn wenn es keine jpg-Datei ist wird sie abgelehnt. Somit macht mein Test mit dem kleinen Bruder mehr Sinn :) .
 
PHP:
if (is_little_brother($dateiname) == "true") 
  {
   echo "Behalt ihn, was will ich mit dem?";
  }

Kann man noch einfacher schreiben:

PHP:
if (is_little_brother($dateiname))
  echo "Behalt ihn, was will ich mit dem?";
Nur zur optimierung deines Styles.. ;)
 

Neue Beiträge

Zurück