Autor | Zpráva | ||
---|---|---|---|
Icka Profil * |
Ahoj, mám trochu problém na webhostingu, přižemž jinde (jiné hostingy) mě funkce bez problémů běží..
mám takovouto funkci na tvorbu miniatur: 1 function VytvorMiniaturu($dir, $img, $vyska) { 2 list($width, $height) = getimagesize($dir.$img); 3 $sirka = ($vyska / $height) * $width; 4 $th_image = imagecreatetruecolor($sirka, $vyska); 5 imagecopyresized($th_image,imagecreatefromjpeg($dir.$img), 0, 0, 0, 0, $sirka, $vyska, $width, $height); 6 if (!imagejpeg($th_image, $dir . "_" . $img, 100)) { return false; } 7 } a vyhazuje mě takovouto chybu s nedostatkem paměti: Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes) in /www/doc/www.vyskoveprace.com/www/script.php on line (radek 5) Nevíte co bych měl udělat pro to, aby chyba byla odstraněna s tim, že miniatury bych potřeboval generovat ?? :-( Tuším, že to bude něco v nastavení php.ini na serveru, takže asi budu muset žádat server pravděpodobně o nějaké rozšíření paměti že..? Děkuji |
||
Musilda Profil |
#2 · Zasláno: 30. 5. 2009, 12:01:48 · Upravil/a: Musilda
Na začátek scriptu
ini_set("memory_limit","xxM"); Místo xx velikost jakou potřebuješ. V php.ini řádek 246 memory_limit = 32M ; Maximum amount of memory a script may consume (16MB) |
||
Musilda Profil |
#3 · Zasláno: 30. 5. 2009, 12:06:18
Ale na hostingu pokud nemáš povoleno ini_set(), budeš muset požádat.
|
||
Icka Profil * |
#4 · Zasláno: 30. 5. 2009, 12:42:19
No ono je na serveru nastaveno 8M, což mě přijde pro vygenerování miniatury jako dostatek :-(( ??
|
||
Davex Profil |
#5 · Zasláno: 30. 5. 2009, 12:56:53 · Upravil/a: Davex
Do 8 MB paměti se ale asi nevejde originální obrázek. Zkus to nějak takto:
function VytvorMiniaturu($dir, $img, $vyska) { list($width, $height) = getimagesize($dir.$img); $sirka = ($vyska / $height) * $width; $th_image = imagecreatetruecolor($sirka, $vyska); $orig = imagecreatefromjpeg($dir.$img); imagecopyresized($th_image, $orig, 0, 0, 0, 0, $sirka, $vyska, $width, $height); imagedestroy($orig); $err = imagejpeg($th_image, $dir . "_" . $img, 100); imagedestroy($th_image); if (!$err) { return false; } } |
||
Alphard Profil |
#6 · Zasláno: 30. 5. 2009, 13:22:10
Icka:
„No ono je na serveru nastaveno 8M, což mě přijde pro vygenerování miniatury jako dostatek :-(( ??“ Jak velké obrázky upravujete? |
||
Icka Profil * |
#7 · Zasláno: 30. 5. 2009, 16:31:03
Obrázky které mají < cca 300kb jde bez potíží procpat... Ale pokud mají > cca 300, už to hází tuto chybu :-(
No jinak bych potřeboval uploadovat a následně VytvoritMiniaturu() z obrázků, které mají řádově 500 - 600 kb a to je právě problém... I s funkcí předloženou od Davexe... |
||
Alphard Profil |
#8 · Zasláno: 30. 5. 2009, 16:43:56
Icka:
Datová velikost není podstatná, myslel jsem rozměry, např. 1200×1600 apod. |
||
Davex Profil |
#9 · Zasláno: 30. 5. 2009, 19:46:32
Icka
Velikost paměti používané PHP skripty by mělo jít zvětšit pomocí souboru .htaccess: php_value memory_limit 64M |
||
Časová prodleva: 15 let
|
0