Druckversion des Themas
Forum Sefrengo.org _ Hacks/ Sonstiges _ Dateimanager: Upload Resize
Geschrieben von: paulinsche Thu. 30. April 2009, 10:02
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 )
: 43Gruß
Rainer
Geschrieben von: saschapi Thu. 30. April 2009, 11:14
Danke!
Geschrieben von: Taturo Tue. 19. May 2009, 16:09
Hallo Rainer,
bei mir werden die Bilder auf 5x5 Pixel verkleinert. Habe an deinen Dateien nichts geändert.
Sefrengo Version 01.04.03
Gruss,
Andreas
Geschrieben von: davelee Wed. 20. May 2009, 12:31
ZITAT(Taturo @ Tue. 19. May 2009, 17:09)
Hallo Rainer,
bei mir werden die Bilder auf 5x5 Pixel verkleinert. Habe an deinen Dateien nichts geändert.
Sefrengo Version 01.04.03
Gruss,
Andreas
Hi taturo, ich hatte das gleich Problem
mit http://forum.sefrengo.org/index.php?s=&showtopic=2512&view=findpost&p=18346 hat es dann aber funktioniert
Geschrieben von: tsunami Mon. 15. June 2009, 16:28
Hallo !
Der Hack funktioniert bei mir einwandfrei. Habe nur ein Problem im Backend, dass ich extrem (horizontal) scrollen muss.
Kann man die Breite des Textfeldes "Grösse" nicht kleiner machen, dass man auch die Bearbeiten-Icons im Viewport
hat ?
Gruss Tsunami
Geschrieben von: davelee Mon. 15. June 2009, 17:36
Dürfte normalerweise nicht so breit sein da länge mit size="5" angegeben ist
Welchen browser verwendest du ?
Geschrieben von: tsunami Mon. 15. June 2009, 18:06
Den FF 3.0.11
Habs auch kurz mal im IE7/IE8 getestet - dasselbe....leider
Geschrieben von: davelee Mon. 15. June 2009, 18:40
Vieleicht hängt es ja mit deinem vorigen Beitrag zusammen (Formularfelder formatieren)
Was sagt denn die developer toolbar ? ansonsten einfach eine CSS Eigenschaft hinzufügen
Geschrieben von: tsunami Tue. 16. June 2009, 07:39
Ist nicht auf der gleichen Installation wie die Geschichte mit den Formularfeldern.
Hatte bei meiner Installation auf welcher ich den Upload-Hack teste aber noch SF 1.4.1 im Einsatz. Habe nun auf 1.4.3 geupdatet. Und jetzt funktioniert es einwandfrei mit der Darstellung des Textfeldes. Bedeutend kleiner als vorher
Geschrieben von: silwue Tue. 7. July 2009, 11:08
Hallo zusammen
Der Resize klappt bei mir ebenfalls toll! Danke viel Mals. Hatte das schon länger gesucht!
Ich hatte ebenfalls diese Fehlermeldung bei sehr grossen Bildern. Da wir aber unsere eigener Provider sind, haben wir die Memory_limit in PHP von 32 auf 64 MB erhöht. Nun klappt auch dieser grosse Upload!
Grüsse
Silvan
Geschrieben von: toto Wed. 8. July 2009, 07:46
Tach zusammen,
hab die Dateien ausgetauscht, aber bei mir passiert rein gar nix. ich hab da nix mit resize stehen??? Muß ich cache löschen oder ähnliches??
gruß toto
Geschrieben von: silwue Thu. 9. July 2009, 09:09
ZITAT(toto @ Wed. 8. July 2009, 08:46)
Tach zusammen,
hab die Dateien ausgetauscht, aber bei mir passiert rein gar nix. ich hab da nix mit resize stehen??? Muß ich cache löschen oder ähnliches??
gruß toto
Hallo toto
Ich musste auch noch die Anpassungen gem. http://forum.sefrengo.org/index.php?s=&showtopic=2512&view=findpost&p=18346 machen. Dann klappte es super.
Grüsse
Silvan
Geschrieben von: tsunami Fri. 10. July 2009, 06:47
Hätte noch ein Frage zu dem Feld (Grösse) wo ja die voreingestellte Grösse steht z.b. 600 (600px). Möchte ich jetzt aber mal doch ein Originalbild hochladen geht dies nicht. Habe mal das Feld
leer gelassen und ein Bild hochgeladen...die Grösse beträgt dann 5x3px. Wäre gut wenn man auch die Option hätte das Originalbild hochzuladen.
Oder geht dies bei euch ? Natürlich via SF-Dateimanager und nicht FTP.
Gruss Tsunami
Geschrieben von: paulinsche Fri. 10. July 2009, 07:16
Gib dann doch einfach in das Feld die max. Pixelgröße ein, also in diesem Fall die Originalgröße…
Geschrieben von: tsunami Wed. 15. July 2009, 06:45
Hallo
Danke für die Info !
Habe noch folgendes festgestellt. Wenn ich im Dateimanager das gleiche Bild (1877x1447/502KB) in einer tieferen "Verschachtelung" z.b.
ab Basisverzeichnis.....dateien/04_angebote/angebote/
ablegen bzw. uploaden möchte, bekomme ich diese Fehlermeldung:
ZITAT
Warning: getimagesize(../media/dateien/04_angebote/angebote/Unwetter-307_0737-bearbeitet.jpg): failed to open stream: No such file or directory in /home/www/web200/html/backend/inc/mod.upl_resize.php on line 79
Das Bildformat wird leider nicht unterstüzt. Nur JPEG, GIF und PNG.
wenn ich das gleiche auf
dateien/04_angebote/ uploaden möchte, funktioniert es !
Sobald ich also 3 Unterordner in der Struktur habe, schlägt der Upload fehl....An was kann es liegen ?
Gruss Tsunami
Geschrieben von: paulinsche Wed. 15. July 2009, 07:09
Hallo Tsunami,
kann ich leider nicht nachvollziehen. Ich bin grad 6 Ebenen tief gegangen ohne jegliche Fehlermeldung.
Vielleicht musst du den "refresh"-Wert in Zeile 88 etwas höher setzen? Nur eine vage Vermutung, bin kein Programmierer…
Geschrieben von: tsunami Wed. 15. July 2009, 08:50
Habe ich versucht - nützte leider nichts.
Ich habe nun in einem anderen Ordner (Dateimanager) testhalber eine neue Ebene erstellt. In diese habe ich das gleiche Bild nochmals hochgeladen. Der Upload funktionierte...mal geht's mal nicht.
Danach löschte ich das Bild zuerst und wollte nachher den Ordner löschen. Dann bekomme ich aber die Meldung:
ZITAT
Verzeichnis konnte nicht gelöscht werden!
Dies hängt denke ich auch mit den geänderten Dateien betreffend "Upload Resize" zusammen...oder wieso lässt sich dieser einfach nicht löschen ? Es befindet sich ja nichts mehr in diesem Ordner...
Geschrieben von: silwue Mon. 20. July 2009, 15:37
ZITAT(tsunami @ Wed. 15. July 2009, 09:50)
Habe ich versucht - nützte leider nichts.
Ich habe nun in einem anderen Ordner (Dateimanager) testhalber eine neue Ebene erstellt. In diese habe ich das gleiche Bild nochmals hochgeladen. Der Upload funktionierte...mal geht's mal nicht.
Danach löschte ich das Bild zuerst und wollte nachher den Ordner löschen. Dann bekomme ich aber die Meldung:
Dies hängt denke ich auch mit den geänderten Dateien betreffend "Upload Resize" zusammen...oder wieso lässt sich dieser einfach nicht löschen ? Es befindet sich ja nichts mehr in diesem Ordner...
Hallo
Das hängt sicher mit dem Owner zusammen. Wenn der Ordner mit Sefrengo erstellt wurde (php) kann es bei manchen Provider sein, dass es einen anderen Owner bekommen hat. Dann kann man Ordner mit FTP nicht mehr löschen.
Ich schätze auch, dass ein so neu erstellter Ordner nicht die nötigen Rechte hat (777) - darum der Fehlschlag.
Hoffe das Hilfe....
Grüsse
swu
Geschrieben von: toto Tue. 11. August 2009, 13:40
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 ******************************************************************************/ ?>
Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)