Seite 2 von 4

Verfasst: Di 9. Mai 2006, 15:54
von votapero
Hallo, hat diese Funktion schon jemand mit 4.6.8.4 zum laufen gebracht? Suche eine einfache Möglichkeit, beim Upload die Bilder direkt zu verkleinern damit kein DAU ein 4MB Foto hochläd....

Leider läuft diese Version mit 4.6.8 nicht. Danke.

Verfasst: Di 9. Mai 2006, 17:32
von HerrB
Die Version von swelpot (include.chain.upload.upload_preprocess.php) sollte auch mit V4.6.8 funktionieren (siehe vorherige Seite).

Es sei erwähnt, dass die Änderung nicht das Hochladen der Datei verhindert, sondern nur einen entsprechenden Upload verkleinert.

Wenn die Dateigröße überprüft werden soll, dürfte es aufwendiger werden, da der Code dazu m.W. in der DB gespeichert ist.

Gruß
HerrB

Verfasst: Di 9. Mai 2006, 20:27
von votapero
HerrB, habe die Version von swelpot bereits getestet gahbt. Kriege einen Fehler (auch im Frontend):

[09-May-2006 14:46:40] PHP Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web99/html/contenido/plugins/chains/includes/include.chain.upload.upload_preprocess.php:69) in /srv/www/htdocs/web99/html/conlib/session.inc on line 487

Habe daraufhin angenommen, dass die Version nicht mit 4.6.8 läuft. Haben Sie eine gute Idee woran es liegen kann? Danke!

Verfasst: Di 9. Mai 2006, 21:02
von emergence
es steht in der fehlermeldung

output started at /srv/www/htdocs/web99/html/contenido/plugins/chains/includes/include.chain.upload.upload_preprocess.php
bei zeile 69

die datei muss mit ?> aufhören... kein leerzeichen oder zeilenumbruch darf sich danach befinden...

Verfasst: Di 9. Mai 2006, 21:04
von swelpot
hi,

das sieht mir eher danach aus, als wäre da ein Linebreak oder Leerzeichen vor oder nach den php-Tags zuviel.

die Datei muss direkt mit "<?" beginnen und unmittelbar nach "?>" enden...

Verfasst: Di 9. Mai 2006, 21:15
von votapero
Hallo,
Nein, habe nochmals alles geprüft. Auch Ultraedit zeigt keinen Break/CR/LF oder Syntaxfehler.
Kann es an Php 4.3.1 liegen? Habe schon bei anderer Gelegenheit einige Probleme mit dieser 'alten' Version gehabt...Gruss & Dank.

Verfasst: Di 9. Mai 2006, 21:36
von votapero
Ups...da war tatsächlich nach dem "?>" ein Blank. Nachdem ich es entfert habe klappt nun das Resize auch im 4.6.8. Danke für deinen Tipp, swelpot/emergence.

Verfasst: So 14. Mai 2006, 11:56
von votapero
Hallo,
das mit dem Resize funktioniert unter 4.6.8, aber "normale" Dateien lassen sich nicht mehr laden.

Der Fehler: [14-May-2006 12:51:42] PHP Warning: rename(,/srv/www/htdocs/web99/html/cms/upload/1-1.pdf) [<a href='http://www.php.net/function.rename'>function.rename</a>]: Datei oder Verzeichnis nicht gefunden in /srv/www/htdocs/web99/html/contenido/includes/include.upl_files_overview.php on line 177

Irgendie ist die Variabel $tmp_name im include.upl_files_overview nicht gesetzt wenn die Chain aktiviert ist. HerrB/emergence, haben Sie eine lösende Idee?

Verfasst: Mo 15. Mai 2006, 01:56
von HerrB
Was sind denn "normale" Dateien?

Gruß
HerrB

Verfasst: Mo 15. Mai 2006, 06:12
von votapero
Alles andere als Grafikdateien die "Resized" werden. Sprich bspw. Word, Excel, PDF, Text.
Sofern die Datei "resized" wird läufts, falls es keines des im include.chain.upload.upload_preprocess.php definierten Typ's ist, erhalte ich den Fehler und die Datei wird nicht auf den Server hochgeladen.
Danke für Eure Hilfe.

Verfasst: Mo 15. Mai 2006, 12:32
von HerrB
Ja, kann sein.

Mal diesen Teil ersetzen:

Code: Alles auswählen

$filetype = strtolower(substr($tmp_name, strlen($tmp_name) -4, 4)); 
    if(strcmp(".gif", $filetype) == 0 || 
       strcmp(".png", $filetype) == 0 || 
       strcmp(".jpg", $filetype) == 0 || 
       strcmp("jpeg", $filetype) == 0 
    ) { 
       $newFilename = capiImgScale($tmp_name, $maxBildbreite, $maxBildhoehe, false, false, 1, true); 
    } 
    $newFilename = str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $newFilename); 
    return $newFilename; 
  } 
durch

Code: Alles auswählen

$filetype = strtolower(substr($tmp_name, strlen($tmp_name) -4, 4)); 
    if(strcmp(".gif", $filetype) == 0 || 
       strcmp(".png", $filetype) == 0 || 
       strcmp(".jpg", $filetype) == 0 || 
       strcmp("jpeg", $filetype) == 0 
    ) { 
       $newFilename = capiImgScale($tmp_name, $maxBildbreite, $maxBildhoehe, false, false, 1, true);
    $newFilename = str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $newFilename);
    } else {
       $newFilename = $tmp_name;
    }
    return $newFilename; 
  } 
Ungetestet.

Gruß
HerrB

Verfasst: Mo 15. Mai 2006, 14:05
von votapero
Hallo HerrB, herzlichen Dank für Ihr Feedback. Scheint soweit zu klappen. Übergrosse GIF's,JPG's werden auf die gewünschte grösse Resized, alle anderen Dateien werden unkomprimiert geladen.
Werde jetzt nochmals ausführlicher testen, aber soweit sieht es schon mal sehr gut aus! Danke viel mals!!!!!!!!

Verfasst: Fr 6. Okt 2006, 07:09
von votapero
Hallo,

habe ein Problem festgestellt: Wenn man nun mehrere grosse Dateien hoch zu laden versucht, bricht der Resize ab und man wird zum Login Screen von Contenido weitergeleitet. Ist abhängig von der Bildgrösse und Anzahl der Uploads. Hat HerrB eine Idee? Liegt wohl an der "Memorygrösse"....

Wäre für einen Hinweis dankbar.
PS: Die Funktion hat sich sehr bewährt!

Verfasst: Fr 6. Okt 2006, 16:24
von HerrB
Mit der Größe wird es weniger zu tun haben, sondern mehr mit der benötigten Zeit - die Session wird ablaufen.

Verlängere mal die Session-Dauer für das Backend (siehe http://www.contenido-faq.de, ggf. Contenido-Version beachten).

Gruß
HerrB

Verfasst: Fr 6. Okt 2006, 21:19
von votapero
Das kanns eigentlich nicht sein. Ich habe schon seit langem den Timeout auf 60 Minuten gestellt (was auch funktioniert). Aber vor allem kommt der Login Screen bereits nach ca. 2, 3 Minuten.

Wie gesagt geht der Upload mit 4, 5 Dateien a 2 MB. Mehr geht nicht.