17. august 2007 - 12:27Der er
7 kommentarer og 1 løsning
Upload af billede
Jeg forsøger at lave mit eget fotoalbum, og jeg bruger et stykke kode jeg tidligere har brugt uden problemer til at uploade billederne, men nu kommer der denne fejl når billederne overstiger ca 250 kb. Nogen ide om hvad der er galt, og hvordan det kan løses?
Fejl:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 6400 bytes) in /customers/06-65.dk/06-65.dk/httpd.www/test/album_gem.php on line 46
Der er jo lige præcis det galt, som fejlen siger. Scriptet er begrænset til max at bruge 16777216 bytes og det kræver mere at læse store billeder ind (pixel-størrelse, ikke filstørrelse af original).
Du kan hæve grænsen (hvis serveren tillader det) for eksempel til at være uendelig med:
ini_set("memory_limit", "-1");
Det kan du dog kun (inden php 5.2.1), hvis php er compiled med -enable-memory-limit. Det vil du kunne se på en phpinfo().
Jeg synes da ikke 250 kb er særlig stort, og det er billdet jeg prøver at uploade til behandling af scriptet. Jeg har fået en forklaring på at det kan være fordi de bliver pakket ud, før de kan komprimeres igen, og der fylder det over 16mb. Jeg har tidliger brugt scriptet på et andet webhotel, og der er resultatet at billederne fylder ca 100-300 kb, alt efter om de er taget vertikalt eller hoisontalt.
Så jeg skal jeg skal bruge en løsning, hvor de ikke kommer til at fylde så meget når de bliver komprimeret.
Det lader til du allerede har fået svaret på dit problem.
Det er rigtig at selv om du uploader et billede somi komprimeret tilstand fylder 250kb, vil dit script udpakke billeder, og derved få det til at fylde mere. Den eneste løsning som findes det dette problem er enten selv at ændre på størrelsen af billedet, og derved ikke kører scriptet, eller at finde et bedre webhotel med mere hukommelse tilrådighed.
Du kan selvfølgelig også gøre noget som er lidt smartere. Se på dit script og undersøg hvad der bruger hukommelse. I stedet for at lave to billeder på samme tid, som du gør lige nu, og som optager dobbelt hukommelse, så kunne du vælge at lave et billede først og derefter frigive hukommelsen og så lave det andet billede.
Det eneste der er udover det viste, er at den modtager oplysningerne om filen der skal uploades, og at den skriver lidt i et par mysql db bagefter. Men med den opdatering du er kommet med der, dkfire, så er det lykkes mig at uploade billeder på over 1 mb, så det er jo langt mere anvendeligt. :)
"Jeg synes da ikke 250 kb er særlig stort" ... hvad er så et stort billede i websammenhæng?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.