- Registriert
- 02.02.16
- Beiträge
- 85
Hallo Community,
erstmal mein Script:
Also wie bereits in der Überschrift erwähnt möchte ich die Dateiendung jeder hochgeladenen Datei verändern. Jedes hochgeladene Bild soll die Endung .jpg tragen.
Wie ihr im Script sehen könnt beinhaltet die Variable $extension die Endung der hochgeladenen Datei. Ich habe bereits einiges probiert und teilweise hatte es auch geklappt. Bspw. wenn man JPEG Dateien hochgeladen hatte so wurde eine Änderung zu JPG vorgenommen.
Das Format PNG hingegen ließ sich bis jetzt noch nicht umändern.
Ich habe im Netzt recherchiert und bin dabei auf folgendes gestoßen:
Angeblich soll es damit möglich sein die Endung zu verändern doch leider weiß ich in keinsterweise wie ich das ganze in mein Script einbauen muss.
Wäre wirklich super wenn jemand ne Ahnung hätte und mir da weiter helfen könnte
erstmal mein Script:
Code:
<?php
session_start();
if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
$userid = $_SESSION['userid'];
$upload_folder = 'upload/'; //Das Upload-Verzeichnis
$filename = "bild_user".$userid;
$extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
//Überprüfung der Dateiendung
$allowed_extensions = array('png', 'jpg', 'jpeg', 'gif',);
if(!in_array($extension, $allowed_extensions)) {
die("Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt");
}
//Überprüfung der Dateigröße
$max_size = 4000*1024; //4000 MB
if($_FILES['datei']['size'] > $max_size) {
die("Bitte keine Dateien größer 4mb hochladen");
}
//Überprüfung dass das Bild keine Fehler enthält
if(function_exists('exif_imagetype')) { //Die exif_imagetype-Funktion erfordert die exif-Erweiterung auf dem Server
$allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF,);
$detected_type = exif_imagetype($_FILES['datei']['tmp_name']);
if(!in_array($detected_type, $allowed_types)) {
die("Nur der Upload von Bilddateien ist gestattet");
}
}
//Pfad zum Upload
$new_path = $upload_folder.$filename.'.'.$extension;
//Neuer Dateiname falls die Datei bereits existiert
if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
$Anzahl = 1;
do {
$new_path = $upload_folder.$filename.$Anzahl.'.'.$extension;
$Anzahl++;
} while(file_exists($new_path));
}
//Alles okay, verschiebe Datei an neuen Pfad
move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);
echo 'Bild erfolgreich hochgeladen, zurück zur <a href="loogin.php">Startseite</a>';
?>
Also wie bereits in der Überschrift erwähnt möchte ich die Dateiendung jeder hochgeladenen Datei verändern. Jedes hochgeladene Bild soll die Endung .jpg tragen.
Wie ihr im Script sehen könnt beinhaltet die Variable $extension die Endung der hochgeladenen Datei. Ich habe bereits einiges probiert und teilweise hatte es auch geklappt. Bspw. wenn man JPEG Dateien hochgeladen hatte so wurde eine Änderung zu JPG vorgenommen.
Das Format PNG hingegen ließ sich bis jetzt noch nicht umändern.
Ich habe im Netzt recherchiert und bin dabei auf folgendes gestoßen:
Code:
substr_replace($file , 'png', strrpos($file , '.') +1)
Angeblich soll es damit möglich sein die Endung zu verändern doch leider weiß ich in keinsterweise wie ich das ganze in mein Script einbauen muss.
Wäre wirklich super wenn jemand ne Ahnung hätte und mir da weiter helfen könnte
