BLOB Image fouten bij imagejpeg

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronald van e

ronald van e

23/09/2011 21:55:59
Quote Anchor link
Hallo,

Wou eens wat meer werken met BLOBS, bijna nooit gedaan (altijd url paths), maar ik krijg het niet voor elkaar om de plaatjes die ik opsla in de database te tonen in de browsers (IE en FF) met imagejpeg()

dit is mijn functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function createfromBlob($blob_data){
    $desired_width = 520;
    $desired_height = 520
        if($blob_data !== FALSE){    
            $im = imagecreatefromstring($blob_data);
            //$new = imagecreatetruecolor($desired_width, $desired_height);
            
            //$x = imagesx($im);
            //$y = imagesy($im);
        
            //imagecopyresampled($new, $im, 0, 0, 0, 0, $desired_width, $desired_height, $x, $y);
        
            //imagedestroy($im);
            
            //header("Content-type: image/jpeg");
        
            imagejpeg($im);
        }else{
            echo "errorrrr";    
        }
}


ik heb de header etc uitgecomment om te kijken wat er door komt zonder resizen, en dan zie ik gewoon de data:

ØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ

enz enz enz

dus de data komt wel goed door (die haal ik vanuit een andere functie waar ik de gegevens uit de db haal).

Maar zodra de header aangaat, geeft ie aan:

De afbeelding “***/view_image.php?view=8856907e92b55411cda3ab22ffda18d4” kan niet worden weergegeven, omdat deze fouten bevat. (*** is de link maar die hou ik liever prive ;) )

Dacht dat het misschien een plaat foutje was maar na meerdere plaatjes moet het een fout ergens zijn maar weet niet waar. Ik upload via PHPmyadmin en die geeft BINARY data aan.

Wat zie ik over het hoofd?
Gewijzigd op 23/09/2011 22:23:27 door Ronald van e
 
PHP hulp

PHP hulp

27/04/2024 23:47:59
 
Ronald van e

ronald van e

27/09/2011 19:53:31
Quote Anchor link
Niemand die wat weet?
 
- Ariën  -
Beheerder

- Ariën -

27/09/2011 20:22:36
Quote Anchor link
Niet een directe oplossing, maar wel de vraag waarom je BLOB gebruikt om bestanden in de database op te slaan?

Uit performance-overwegingen is het niet aan te raden.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

27/09/2011 23:43:26
Quote Anchor link
en als je echoed in plaats van imagejpeg met de header aan?
 
Tim S

Tim S

28/09/2011 00:22:47
Quote Anchor link
Ik heb deze bug ook ooit gehad, toen kwam ik er achter dat er ergens een witregel werd ge-output. Toen ik die had gevonden en weggehaald deed hij het wel.
 
Ronald van e

ronald van e

11/10/2011 10:06:32
Quote Anchor link
@Aar ik wil kijken wat de mogelijkheden zijn, het in 1x backuppen en content blokkeren (bv fotos tonen aan bepaalde groepen). Nu kan dat ook met filesystem path maarja dan kan je altijd die img url openen ook al is de pagina zelf zichtbaar voor iedereen.

Nu wil ik dit doen met een hash die dus gelijk is met de hash van de foto in de database.. maarja ook zoals jij al zegt las ik over die performance. Zelf heb ik daar nog niet veel kaas van gegeten dus wil ik ook uitzoeken wat het daadwerkelijk verschil is. Tis geen drukbezochte website dus vandaar durf ik dat wel aan om te testen. Maar als het nu al erg traag wordt laat ik het zitten

@Ger zal ik eens proberen

@Tim dacht ik ook aan maar nog geen vreemde zaken gevonden...
Gewijzigd op 11/10/2011 10:08:03 door ronald van e
 
Elwin - Fratsloos

Elwin - Fratsloos

11/10/2011 15:40:48
Quote Anchor link
Je moet volgens mij inderdaad de inhoud (in combinatie met de goede headers) met een echo naar de browser sturen en niet met imagejpeg(). imagejpeg() verwacht namelijk een resource met de data van de afbeelding.

Dus om alleen de afbeelding te laten zien zou echo voldoende moeten zijn op de plek waar je nu imagejpeg() hebt. Maar aangezien je de afbeelding wilt aanpassen moet je eerder de BLOB omzetten naar een resource waar GD mee om kan gaan. Dat zal dus ergens rondom regel 5 van jouw voorbeeld moeten zijn.

En het omzetten van de BLOB; ik denk dat het mogelijk moet zijn met imagecreatefromstring().
 



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.