Als ik grote foto's van boven de 500KB ongeveer probeer
kleiner te maken dan stopt mijn script op regel van:
$source = imagecreatefromjpeg($_FILES['bestand']['tmp_name']);
Kan iemand mij vertellen hoe dit op te lossen.
Volgende deel van mijn script gaat het verkeerd:
Het heeft ook met de capaciteit van de server te maken. Als ik een resize script draai op onze server, dan kan ik foto's van 3,5 MB probleemloos laten resizen. Als datzelfde doe op een server van WatSnel Hosting, dan wordt de foto na het verzenden niet geaccepteerd (staat niet in $_FILES). Het kan daar maar tot 1,5MB o.i.d. Misschien hetzelfde probleem bij jou.
hmmmm yannick!
op mijn manier gaat de foto procentueel kleiner worden,
bij jou kan je foto nu helemaal vervormen!
Maar daar ligt het niet aan, want kleinere foto's doen het wel!
xSc,
Ik zat ook ongeveer zo te denken, dat het aan de server ligt
(instelling of zo) maar zou dus niet weten wat?
Kan jij misschien dat deel van jou script even posten,
kan ik vergelijken en evenkijken of het echt daaraan ligt!
Want mij script werkt wel, maar bij grotere foto's blijft hij gewoon
hangen op "imagecreatefromjpeg" krijg dan namelijk niets meer in beeld. (ff getest met echo's na elke opdracht)
Thomas - 16/01/2007 13:30 (laatste wijziging 16/01/2007 13:37)
Moderator
Dit kan zoveel oorzaken hebben. Waarschijnlijk een timelimit of een maxsize (serverinstelling) die overschreden wordt?
EDIT: nm.
EDIT2: bevat $_FILES['userfile']['error'] een waarde?
Je zou ook de volgende dingen kunnen wijzigen:
* (in .htaccess) verhoog php_value post_max_size, bjivoorbeeld naar 24M
* (in je upload-script) zet bovenaan je script set_time_limit(0)
Als je meerdere plaatjes tegelijkertijd upload loont het ook de moeite om tussendoor wat ruimte vrij te geven (verwijder plaatjes in het geheugen die je niet langer nodig hebt direct met imagedestroy())
EDIT3: Verder kan ik je alleen maar aanmoedigen om zaken te splitsen: maak bijv. een class voor uploads, een class voor image-manipulatie, zodat je deze zaken uit elkaar trekt.
Het
bestand word gewoon op de server gegooid (8MB)
maar zodra ik weer "imagecreatefromjpeg" aanspreek loopt hij vast!
(dus ik zie "1" in beeld, en na 5 min gebeurd er nog niets )
PS: Weet iemand of GD ook een mogelijkheid heeft om max geheugen toe te kennen, ookal kan alleen de eigenaar van de
server deze instelling veranderen!
Heb de error proberen te zoeken, maar echo toont niets omdat het
script gewoon fas loopt, en posten max is al 8MB terwijl ik met foto's van 1 MB test.
Wil je het origineel ook opslaan, of alleen de geresizede variant opslaan? Als je alleen het laatste wilt, kun je prima vanuit $_FILES['bestand']['tmp_name'] werken. Tijdens de uitvoering van het script blijft dit bestand bestaan. Je hoeft het bestand niet eerst te kopiëren.
Hmm... heb je error_reporting aanstaan, werk je in $locatie_php ook met $_SERVER['DOCUMENT_ROOT'] (en niet met relatieve paden enzo)?
Oude bestand wil ik niet meer bewaren nee,
het eers copieren naar de goede locatie en dan pas aanpassen
was om te testen of het uploaden wel lukte. (doet het dus)
De paden werken allemaal perfect, kleinere foto's
gaan er namelijk simpel en snel doorheen!
(die ook geresized worden)
Heb ook snel geporbeerd bestans als string in te lezen en daarna
van string aan plaatje te maken, maar dan blijft hij daar ook hangen!
Zodra hij van GD library gebruik maakt gaat het verkeerd.
Zie op php.net zelfde problemen staan, dan met memory limits.
Dus heb die proberen te verhogen, maar denk geen rechten voor.
Dus heb ff mail gestuurd, of dat eventueel kan!
Anders weet ik het ook niet meer.
Ik denk namelijk dat hij over zijn max geheugen gebruik gaat en
daarom de server het script zelf tegenhoud.
PS: memory limit staat nu op 32M, maar foto's gebruiken natuurlijk
een veelvoud van hun eigen waarde!
Oh error reporting staat volgens mij voor alles aan zo
error_reporting = 2047
Heb het probleem opgelost!
Idd moet je je Memory Limit van php instellingen verhogen!
als je foto's wilt bewerken van rond de 6 MB moet hij echt op
96MB staan!