Probleem met imagecreatefromjpeg()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niek Berckmans

Niek Berckmans

15/06/2009 15:43:00
Quote Anchor link
Hoi,

Ik krijg een warning met imagecreatefromjpeg() en andere GD lib functies wanneer plaatjes spaties bevatten. Weet iemand hoe ik dit probleem kan oplossen behalve door de spaties uit het originele bestand weg te halen.

Bij voorbaat dank,

Niek
 
PHP hulp

PHP hulp

05/11/2024 07:57:31
 
Joren de Wit

Joren de Wit

15/06/2009 15:50:00
Quote Anchor link
Laat eens een stukje code zien waarin het fout gaat?
 
Niek Berckmans

Niek Berckmans

15/06/2009 15:54:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$splittedName
=explode('.',$imgNAME);
switch(strtolower($splittedName[count($splittedName)-1])){
    case
'jpg': $photo = @imagecreatefromjpeg($imgFILE);break;
    case
'jpeg': $photo = @imagecreatefromjpeg($imgFILE);break;
    case
'gif':  $photo = @imagecreatefromgif($imgFILE);break;
    case
'png': $photo = @imagecreatefrompng($imgFILE);break;
}

?>

$imgNAME en $imgFILE komt uit de database.
Gewijzigd op 01/01/1970 01:00:00 door Niek Berckmans
 
Emmanuel Delay

Emmanuel Delay

15/06/2009 17:39:00
Quote Anchor link
een plaatje zou dan ook beter geen spatie bevatten.
Letters (liefst lower case), cijfers en underscore.

Vooraleer je de file uploadt, zou je de naam door een functie kunnen sturen die ongewenste karakters verwijdert.

Die naam insert je in de db en je hernoemt bij het kopiëren de files ook naar die naam.


EDIT:
copy paste eens de src van zo'n image in je webbrowser. Je zal zien dat sommige karakters (zoals bv. de spatie) zullen vervangen worden.
Voor de spatie zou dat %20 moeten zijn, dacht ik.

Indien enkel de spatie een probleem is, zou je in $imgNAME gewoon de spaties kunnen vervangen door %20.
Zie eens of het daarmee lukt.

$imgNAME = str_replace (" ", "%20", $imgNAME);

Nog iets: volgens mij een betere manier om de extensie te vinden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$temp
= pathinfo($imgNAME);
switch(strtolower( $temp['extension'] )  ){
...

?>
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Wim E

Wim E

15/06/2009 21:41:00
Quote Anchor link
Ik ken deze fout, ik heb verholpen door de memory_limit te verhogen.
Dit kan met de functie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
/**
* Stel php.ini in, zet memory hoger zodat hij kan resizen en uploaden
**/
ini_set('memory_limit', '80M');
 
Niek Berckmans

Niek Berckmans

16/06/2009 11:23:00
Quote Anchor link
Het probleem is alleen dat de plaatjes al upgeload zijn, het is een webwinkel. Ik heb een nieuw design gemaakt voor deze winkel en wil nu van de oude, reeds bestaande plaatjes thumbs maken. De namen moeten dus ook hetzelfde blijven, daarom kan ik de spaties niet verwijderen.

Ik zal eens kijken of de ini_set werkt.
 
Emmanuel Delay

Emmanuel Delay

17/06/2009 02:40:00
Quote Anchor link
Is er iets dat je tegen houdt om alle files (met foute karakters) te hernoemen?
zie http://us3.php.net/manual/en/function.rename.php

Zo zou je zowel de files zelf als de waarden in de db kunnen aanpassen.
Dat kan allemaal geautomatiseerd bebeuren.

Dan ben je in 1 keer van je probleem af.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Niek Berckmans

Niek Berckmans

22/06/2009 10:39:00
Quote Anchor link
Al gedaan, bedacht dat er vast wel een rename function moest zijn. Dat was ook het geval. Bedankt iig!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.