Avatar billede dennism Nybegynder
12. april 2007 - 19:41 Der er 13 kommentarer og
1 løsning

PHP: system laver timeout

Jeg har lavet et system til upload og resize af billeder, som desværre laver en timeout ved et billede på f.eks. 500kb.

Et udpluk af system ligger her:
http://ligabold.com/upload/

Her er det billede som jeg forsøger at upload:
http://ligabold.com/upload/image.jpg

Som I kan se, så modtager man en blank side, når man forsøger at upload det - jeg er overbevist om at dette skyldes en server-timeout.

I kan hente koden til systemet her:
http://ligabold.com/upload/src.zip

Alt arbejdet sker i image-klassen. Her er der en metode "upload" som først upload tmp-filen til midlertidigt serveren. Herefter kaldes metoden "copy" som sørger for at der bliver lavet en imagecopyresampled på den midlertidige filen, så den bl.a. bliver lidt komprimeret - derefter gemmes den i det korrekte filnavn.
Da den fil vi uploader er større end 500px i højden, bliver funktionen "copyAndResize" kaldt. Denne sørger for at resize billedet, så det max. er 500px i højden. Som I kan se, så har jeg i "copyAndResize" angivet hvor timeouten sker - dette er jeg kommet frem til ved debugging.

Mit spørgsmål er nu, hvordan jeg kan forhindre at der sker en timeout?
Avatar billede erikjacobsen Ekspert
12. april 2007 - 19:52 #1
Du har den hos b-one, så du må bruge de indstillinger de har til størrelser og timeout. Så hvad med bare at uploade mindre billeder?
Avatar billede dennism Nybegynder
12. april 2007 - 20:46 #2
Hvordan kan jeg vide, hvad den maksimale størrelse/dimension af billederne må være?
Avatar billede erikjacobsen Ekspert
12. april 2007 - 21:10 #3
Ved at prøve dig frem - men det kan svinge. Selvfølgelig vil det også afhænge af hvad du laver i scriptet - måske kan det deles op i 2. Men der vil være begrænsninger på et almindeligt webhotel (og siger nogen: på b-one i særdeleshed ...)
Avatar billede erikjacobsen Ekspert
12. april 2007 - 21:11 #4
Og endelig kan man aflæse noget fra en <? phpinfo(); ?>
Avatar billede dennism Nybegynder
12. april 2007 - 21:40 #5
Det vil sige, at jeg burde lave systemet så det f.eks. kører igennem en iframe og laver en operation ad gangen?
Avatar billede erikjacobsen Ekspert
12. april 2007 - 22:00 #6
Nej, det bør du kun hvis du selv synes. Mit forslag er at du uploader mindre billeder ;)
Men script1 kunne lægge den uploadede fil et sted, og så redirecter du til script2, der gør det mindre. Men det må du så selv prøve ;)
Avatar billede dennism Nybegynder
12. april 2007 - 23:36 #7
Jeg tror, at jeg har fundet ud af, hvad problemet er. Jeg har f.eks. denne kode:
<?
echo"starter<br>";
$dist = imagecreatetruecolor(2848, 2144);
echo"imagecreatetruecolor kørt<br>";
?>

Når jeg kører den på min one hotel, får jeg:
http://ligabold.com/upload/test.php

Det er altså de store dimensioner som GD ikke kan lide? Hvordan finder jeg grænsen?
Avatar billede erikjacobsen Ekspert
12. april 2007 - 23:50 #8
Det kunne ligne et RAM problem - altså hvor meget (lidt) en PHP-process får. Du kan prøve dig frem - eller som sagt: lave arbejdet et andet sted. PHPs billedfunktioner giver ikke så godt et resultat, som hvis man selv gør det godt i et billedbehandlingsprogram.
Avatar billede dennism Nybegynder
13. april 2007 - 10:21 #9
Så vidt jeg har analyseret mig frem til, så går det altid fint så længe man holder sig under et billede på 3M Pixel. Tror grænser ligger i nærheden af 3,2M, men så hellere være på den sikre side.
Avatar billede dennism Nybegynder
16. april 2007 - 17:28 #10
Hvad siger du til det?
Avatar billede erikjacobsen Ekspert
16. april 2007 - 19:08 #11
Det lyder da meget fornuftigt - men jeg kender som sagt ikke noget til b-one
Avatar billede dennism Nybegynder
18. april 2007 - 18:29 #12
Tak for hjælpen her. Smider du lige et svar?
Avatar billede erikjacobsen Ekspert
18. april 2007 - 18:53 #13
Ingen point til mig, tak. Samler ikke på dem.
Avatar billede dennism Nybegynder
18. april 2007 - 19:30 #14
Så lad os lukke her. Igen, tak for hjælpen!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester