Dateimanager: Upload Resize |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Dateimanager: Upload Resize |
Thu. 30. April 2009, 10:02
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 154 Mitglied seit: 03.07.2006 Mitglieds-Nr.: 91 |
Große Bilder können mit dem Hack per Upload auf einen vorgegebenen Pixelwert verkleinert werden. Kleinere Bilder als Vorgabe sind davon nicht berührt. Zudem wird mit dem Upload auch der Dateiname komplett kleingeschrieben und Sonderzeichen und Umlaute entfernt.
Bei mir läuft's prima. Lediglich mit transparenten png-Daten scheint es nicht so zurechtzukommen. So hab ich das einfach auskommentiert. Näheres siehe unten. Benutzung auf eigene Gefahr. In den Ordner backend/inc/ die Dateien "mod.upl_resize.php" und "inc.upl.php" reinladen bzw. letztere überschreiben. Ebenso im Ordner "backend/tpl/standard/" die Datei "filelist.tpl" überschreiben. Bei der Datei "inc.upl.php" sind am Ende der Datei die letzten paar Zeilen ab dem Kommentar hinzugefügt worden. QUELLTEXT // Upload Resize and Rename // by Felix Praschak - www.inallermunde.de - web@inallermunde.de include('mod.upl_resize.php'); Datei "filelist.tpl" Zeile 59: Pfadanpassung an das Projekt verzeichnis (wenn nicht im ROOT) mod_upl_resize.php QUELLTEXT //write relative path to file $img = '../media/'.$fm->get_directory_name($folder_kompl).$file_path; Zeilen 110 bis 112 hinzugefügt. Hier kann man die gewünschte Dateigröße festlegen (value = x). QUELLTEXT <!--BEGIN RESIZING--> Größe: <input name="newpicsize" type="text" value="600" size="5" maxlength="4" /> <!--END RESIZING--> In der Datei "mod.upl_resize.php" ganz am Schluß kann man angeben, für welches Dateiformat die Größenänderung angewandt werden soll. Im Moment ist nur JPG aktiviert, GIF und PNG ist auskommentiert. Datei "mod.upl_resize.php" Zeile 20: QUELLTEXT //set picture quality (0 - 100), default: 80 $quality = 80; Davelee hat angemerkt, dass bei ihm zu große Bilder (3072x2304) eine Fehlermeldung bringen. Wenn ich noch was anmerken soll, einfach melden. upload_resize.zip ( 13.53KB ) Anzahl der Downloads: 43 Gruß Rainer Der Beitrag wurde von paulinsche bearbeitet: Fri. 10. July 2009, 07:21 |
|
|
Tue. 11. August 2009, 13:40
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 236 Mitglied seit: 14.07.2006 Wohnort: Bad Oeynhausen Mitglieds-Nr.: 138 |
bei mir kommt das im Dateimanager und darunter die Fileliste.
QUELLTEXT get_parent_directories($iddirectory=$_POST['iddirectory'], $idclient); $folder = $_POST['iddirectory']; //get file-IDs of selected Directory $db_dir = $fm->get_files_in_directory($folder, $client); while($db_dir->next_record()) { $idfile_dir = $db_dir->f('idupl'); $folderscan = $folderscan.'//'.$idfile_dir; } $folderarray = explode ('//',$folderscan); //sort file-IDs to extract the latest file-ID function sortiere($m, $n) { if ($m == $n) return 0; return ($m < $n) ? 1 : -1; } usort($folderarray, sortiere); //get filename of uploaded file, delete special characters (german) $file_path = $_FILES['userfile']['name']['0']; $file_path = preg_replace('/[^ a-zA-Z0-9._]/', '#', $file_path); $file_path = str_replace('##','-',$file_path); $file_path = str_replace(' ','-',$file_path); $file_path = str_replace('#','-',$file_path); //write relative path to file $img = '../media/'.$fm->get_directory_name($folder_kompl).$file_path; //generate lower case file name $img_kl = strtolower($file_path); //set path for reloading $uri = $_SERVER['PHP_SELF'].'?area=upl&viewtype=compact&idexpand='.$folder_kompl; //get new picture size - min. 5px if($_POST['newpicsize']<5){ $maxsize = 5; } else{ $maxsize = $_POST['newpicsize']; } //get actual picture information $imagesize = getimagesize($img); $hoehe = $imagesize[1]; $breite = $imagesize[0]; $typ = $imagesize[2]; //check if jpeg,gif or png - if not die if(($typ != 1)&&($typ != 2)&&($typ != 3)){ echo "Das Bildformat wird leider nicht unterstüzt. Nur JPEG, GIF und PNG."; header("refresh:4;url=$uri"); die(); } //if width is longer side - rezise if($hoehe < $breite){ $ratio = $hoehe / $breite; if($breite < $maxsize){ $hoehe_n = $hoehe; $breite_n = $breite; } else{ $hoehe_n = $maxsize * $ratio; $breite_n = $maxsize; }} //if height is longer side - rezise else{ $ratio = $breite / $hoehe; if($hoehe < $maxsize){ $hoehe_n = $hoehe; $breite_n = $breite; } else{ $hoehe_n = $maxsize; $breite_n = $maxsize * $ratio; } } //overwrite existing, original sized image /* //save as GIF if ($typ == 1) { $src = imagecreatefromgif($img); $dest = imagecreatetruecolor($breite_n,$hoehe_n); imagecopyresampled($dest,$src,0,0,0,0,$breite_n,$hoehe_n,$breite,$hoehe); imagegif($dest,$img,$quality); } */ //save as JPEG if ($typ == 2) { $src = imagecreatefromjpeg($img); $dest = imagecreatetruecolor($breite_n,$hoehe_n); imagecopyresampled($dest,$src,0,0,0,0,$breite_n,$hoehe_n,$breite,$hoehe); imagejpeg($dest,$img,$quality); } /* //save asPNG if ($typ == 3) { $src = imagecreatefrompng($img); $dest = imagecreatetruecolor($breite_n,$hoehe_n); imagecopyresampled($dest,$src,0,0,0,0,$breite_n,$hoehe_n,$breite,$hoehe); imagepng($dest,$img,$quality); } */ //file name to lower case $fm->rename_file_fs( $idupl = $folderarray[0], $img_kl ); //update file and reload page $fm->update_file($idupl = $folderarray[0],$idclient,$filename = $img_kl,$directory,$filetype,$status,$description,$used); header("refresh:0;url=$uri"); } /****************************************************************************** End of PICTURE RESIZE ******************************************************************************/ ?>
-------------------- Corporate Design, Printdesign, Webdesign, Podcast, Videocast und Beratung bei Junggebauer Grafik & Design
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 27.4.24 - 18:00 |