Billede upload problem

Tags:    php

Jeg bruger koden nedenfor til at uploade billeder med. Men jeg har et lille problem. Jeg kan nemt uploade ét stort billede: 2496 x 2331 - 4.9 MB men da det jo er et multi-billede-upload script så skal det jo være muligt for brugeren at uploade flere billeder. Lad os side at $felter = 20. Så prøver jeg at uploade 20 af de store billeder og får fejlen:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate xxxx bytes) in /some/location/upload.php on line 149

Linje 149:
Fold kodeboks ind/udPHP kode 


upload.php
Fold kodeboks ind/udPHP kode 


Hvis nødvendigt:
preupload.php
Fold kodeboks ind/udPHP kode 


Hvad gør jeg forkert??



Indlæg senest redigeret d. 28.12.2008 01:27 af Bruger #14535
8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvis du tjekker dokumentationen finder du svar på dit problem:
http://dk.php.net/manual/en/features.file-upload.post-method.php

Det er fordi at din PHP configuration er sat til ikke at tage imod uploads der er større end 33554432 bytes = 33554,432 KB = 33,554432 MB og da du jo prøver at uploade 20 * 4,9 MB = 98 MB = 98000 KB = 98000000 KB

Men du kan rette op på det ved at ændre i din PHP configuration hvis du har adgang til den eller ved at putte den her kode ind i din html form:
Fold kodeboks ind/udHTML kode 


Du kan selfølgelig ændre tallet til et højere hvis det er det du lyster :D

Ud fra den linje du gav os ser det også du som om du har en anden fejl, men prøv at rette hvad jeg har oplyst først og meld tilbage igen hvis du stadig har problemer :D



Men hvis jeg prøver med 2 filer af samme størrelse så får jeg samme fejl

2 * 4,9 = 9,8 MB = 10035 KB = 10275840 bytes

Jeg ved ikke men tror det ligger i koden og har noget at gøre med ImageCreateFromJPEG (linje 72) og imagecreatetruecolor (linje 81) osv.
Jeg kører ImageDestroy($destination_handle ); og starter loopet igen. Hvad kan der være galt?



Prøv dog at kigge på den linje der laver fejlen:
Fold kodeboks ind/udPHP kode 

Den ser jo fuldstændig åndsvag ud?
Du kan ikke lave en funktion med et dollartegn foran :)



$function_to_read er en string der bliver defineret på linje 72. :)

$source_handle bliver så til en GD funktion



Indlæg senest redigeret d. 28.12.2008 03:24 af Bruger #14535
Ok, tror ikke det der er best-practice men what ever :D

Hvis du tager de 5 første ord af din fejl og søger på google får du svar på dit problem:
http://www.tech-recipes.com/rx/777/solve-php-fatal-error-allowed-memory-size-of-8388608-bytes-exhausted-tried/




Ok, tror ikke det der er best-practice men what ever :D

Hvis du tager de 5 første ord af din fejl og søger på google får du svar på dit problem:
http://www.tech-recipes.com/rx/777/solve-php-fatal-error-allowed-memory-size-of-8388608-bytes-exhausted-tried/


Det virker også fint lokalt, men har ikke rettigheden til at ændre memory_limit på min webhost.



Indlæg senest redigeret d. 29.12.2008 02:18 af Bruger #14535
så tror jeg ikke der er noget at gøre. Jeg har gjordt hvad jeg kan og den eneste måde er ved at skifte webhotel eller overtale ejeren.

På gigahost kan man selv konfigurere sin PHP ini fil og ændre memory_limit.



Ok, tak for hjælpen.





t