Hallo zusammen,
Dann auf ein Neues:
Bin seit geraumer Zeit dran eine Funktion zu schreiben, die "alles in einem macht":
PHP
#################################################################################################################
#### Bilder upload #####
function bilder_upload ($pfad, $endungen, $bildhoehe)
{
##-----------------------------------------------
## Prüfen ob ein Bild ausgewählt wurde
##-----------------------------------------------
!isset($_FILES['datei']['tmp_name'])?$_FILES['datei']['tmp_name']='':'';
if($_FILES['datei']['size'] <= '850000') ##if 1
{
if ($_FILES['datei']['tmp_name'] !== '') ##if 2
{
##-----------------------------------------------
## Prüfen ob hochgeladene Datei eine Bild ist.
## Hochgeladene tmp-Datei wird in String geladen, und wieder zurück in Bild verwandelt.
## Bei Erfolg -> Bild; bei false -> Kein echtes Bild.
##-----------------------------------------------
if (@imagecreatefromstring(file_get_contents($_FILES['datei']['tmp_name']))!==false) ##if 3
{
##-----------------------------------------------
## Prüfen ob hochgeladene Datei die richtige Dateiendung hat
##-----------------------------------------------
$extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
if (in_array($extension, $endungen)) ##if 4
{
##-----------------------------------------------
## DATEINAMEN OHNE UMLAUTE,ß etc.
##-----------------------------------------------
$dateiname = $_FILES['datei']['name'];
$_FILES['datei']['name']= dateiname_bereinigen($dateiname);
##-----------------------------------------------
## BILDGÖSSE ÄNDERN
##-----------------------------------------------
!isset($imagesize)?$imagesize='':'';
$imagesize = getimagesize($_FILES['datei']['tmp_name']);
$bildbreite_alt = $imagesize['0'];
$bildhoehe_alt = $imagesize['1'];
$bildverhaeltnis = $bildhoehe_alt / $bildbreite_alt;
$bildtyp = $imagesize['2'];
$bildhoehe_neu=$bildhoehe;
$bildbreite_neu=round($bildhoehe_neu/$bildverhaeltnis);
switch($bildtyp)
{
case 1:
echo'Das ist ein gif';
break;
case 2:
echo'Das ist ein jpg';
$bild_neu = imagecreate($bildbreite_neu, $bildhoehe_neu);
$bild_alt = imagecreatefromjpeg($_FILES['datei']['tmp_name']);
imagecopyresampled($bild_neu,$bild_alt, 0, 0, 0, 0, $bildbreite_neu, $bildhoehe_neu, $bildbreite_alt, $bildhoehe_alt);
imagejpeg($bild_neu, $_FILES['datei']['name'] );
break;
case 3:
echo'Das ist ein png';
break;
}
$result = move_uploaded_file($_FILES['datei']['tmp_name'] , $pfad.$_FILES['datei']['name']);
} ## Ende if 4
else
{
echo '</br>ES SIND NUR BILDDATEIEN DER TYPEN "JPG", "PNG" und "GIF" ERLAUBT!';
}
} ## Ende if 3
else
{
echo '</br>ES SIND NUR BILDDATEIEN ERLAUBT!';
}
} ## Ende if 2
else
{
echo '</br>WÄHLEN SIE EINE DATEI ZUM HOCHLADEN AUS!';
}
} ## Ende if 1
else
{
echo '</br>BILDDATEIEN BIS MAXIMAL 850KB!';
}
echo'<pre>';
print_r ($imagesize);
echo'</br>'.$bildbreite_alt.'</br>'.$bildhoehe_alt.'</br>'.$bildtyp.'</br>'.$bildverhaeltnis.'</br>'.$bildbreite_neu.'</br>'.$bildhoehe_neu;
echo'</br>'.$_FILES['datei']['name'] ;
echo'</pre>';
Alles anzeigen
Bin gerade an einem JPG Bildformat am testen, um den resize hinzubekommen. Also, das Bild wird kontrolliert auf: - Ist der Bildinhalt ein Bild, - Ist die Dateiendung JPG, PNG oder GIF - ISt die Dateigröße nicht zu gross - ist überhaupt eine Datei ausgewählt worden.
Alles das funktioniert soweit auch. Aber der resize der funktioniert noch nicht.
Warum ?!?!?!?!?! keine Ahnung.
Der Pfad der Bilder wird in $pfad in die Funktion reingegeben.
Die Endungen über $endungen
Und die gewünschte Bildhöhe über $bildhoehe.