Nagyméretű képek feltöltése

Lx01 képe

Üdv! A probléma a következő: nagyméretű képeket szeretnék feltölteni az oldalra, amelyek max. 5 Mb méretűek. Az image-6.x-1.0-alpha4 modult használom.Engedélyezve van az image, image attach, image gallery, image import.
A webhely beállítások/images elemen belül a megengedett legnagyobb méret 5000 kB.
A feltöltő felhasználó olyan csoportba tartozik amelynek engedélyezve van a képek feltöltése, adminisztrációja.
A webhely beállítása/fájl feltöltések pontban az általános és csoportbeállítások esetében is 5 Mb engedélyezett méret van beállítva.
Mégis ha 800 kB-nál nagyobb méretű képet akarok feltölteni akkor a következő hibaüzenetet kapom:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9216 bytes) in Y:\proba\includes\image.gd.inc on line 190
Megnéztem az image.gd.inc-ben az alábbi található a 175-től 190-ig sorban:

* GD helper function to create an image resource from a file.
*
* @param $file
* A string file path where the iamge should be saved.
* @param $extension
* A string containing one of the following extensions: gif, jpg, jpeg, png.
* @return
* An image resource, or FALSE on error.
*/
function image_gd_open($file, $extension) {
$extension = str_replace('jpg', 'jpeg', $extension);
$open_func = 'imageCreateFrom'. $extension;
if (!function_exists($open_func)) {
return FALSE;
}

Mi lehet a hiba????

Miért telik meg a rendelkezésre álló memória??? És miért csak ennyi a rendelkezésre álló terület? (33554432 bytes) (A gépen 1gB van összesen)

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Nagy Gusztáv képe

úgy tűnik, 32Mb-ra van állítva, ezt kellene pl. duplájára tenni.

0
0

Nagy Gusztáv

(Ha most kezded, az ingyenes Drupal 7 alapismeretek könyvem hasznos lehet.)

Lx01 képe

Azt esetleg meg tudnád mondani, hogy hol és milyen paranccsal tudom megnövelni a memóriát?
Azért érdekes ez, mert két napja még semmi gond nem volt a feltöltésekkel, de közben összezavartam néhány dolgot és újraraktam a drupalt. Előtte persze töröltem az adatbázist és újat hoztam létre. (phpMyAdmin)
Az is zavar kicsit, hogy ha egyszer 32 Mb a rendelkezésre álló memória akkor miért 800 kB-nál nagyobb fájlok esetében akad ki a rendszer. Sajnos nem értek a PHP programozáshoz, de az nem lehet, hogy abban a pár sorban egy végtelen rekurzív hívás keletkezik?
Annál is inkább mert most látom, hogy a 190. sort lefelejtettem:
return $open_func($file);

És pont ebben a sorban jelez hibát.

Még egy probléma is felmerült, de nem tudom, hogy kapcsolódhat-e ide:
a 800 kB-nál kisebb képek esetében olyan gond merült fel, hogy ha a kép eredeti nevében ékezetes karakterek vannak (pl.: zászló.jpg) akkor a feltöltés során feltölti ugyan a képet a megadott könytárba, sőt a bélyegképet is létrehozza, de az ékezetes karaktereket valami "nagyonhülye" karakterre cseréli és így aztán a drupalon belül már nem tudja megjeleníteni. (beírja a kép nevét, de magát a képet nem jeleníti meg)

Tudsz esetleg erre is valami ésszerű magyarázatot?

0
0
Nagy Gusztáv képe

Először is, a memória méretet alapvetően a php.ini határozza meg. De ezt a szolgáltatódtól kellene megkérdezni.
Ez a sor: "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9216 bytes)" teljesen egyértelműen arra utal, hogy kevés a 32Mb memória, abból kifutottál. Memória kell a telepített modulok miatt, de egy fájl feltöltéshez is. Tehát pl. ha kevesebb modult használnál, több esélyed lenne, hogy beleférsz a 32M-ba, de azért nem ez a megoldás.

Másodszor: Soha ne tölts fel ékezetes nevű fájlokat webre. Soha.
Hogy mit rontottak el a szerver üzemeltetői, nem tudom, de jobban jársz, ha ezt betartod.

0
0

Nagy Gusztáv

(Ha most kezded, az ingyenes Drupal 7 alapismeretek könyvem hasznos lehet.)

kispi92 képe

Lenne egy olyan problémám, hogy ezt a memória beállításos dolgot hol tudom elvégezni? Ugyanis nálam is előjött már egyszer-kétszer ilyen jellegű hibaüzenet!!! ;o

(Ja és localról van szó természetesen...)

0
0

Forgalomnövelés üzleti alapon...

Ash képe

Mint ahogy Gusztáv is mondta, a php.ini nevű fájl -ban található egy ilyen sor:

memory_limit = 32M

Ezt a számot kell értelemszerűen átírni mondjuk 64M -ra.

Ha windowst és xampp ot használsz akkor egy lehetséges útvonal pl.
c:\xampp\apache\bin\php.ini

A windows keresőjével könnyen megtalálod.
Természetesen az apache -ot újra kell indítani.
Aztán a localhost/info.php -t futtatod és ott ellenőrizheted hogy sikerült e.

0
0
Pasqualle képe

az admin/reports/status oldalon is lathato a "PHP memória korlátozás"

0
0
Lx01 képe

A probléma megoldásra került! Ezer thanks!

0
0
fox mulder képe

A settings.php-ban is állíthatod:

ini_set('memory_limit', '64M');

De nem tudom, az, hogy ez működjön, milyen szerverbeállításoktól függ.
0
0

Fox Mulder

kispi92 képe

Mindenkinek!!!!! :D

0
0

Forgalomnövelés üzleti alapon...