[php]blob velden -> plaatje uit een database halen

Pagina: 1
Acties:
  • 171 views sinds 30-01-2008
  • Reageer

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
OK. Ik heb een script van phpbuilder.com gehaald gemaakt door ene florian wat je hier kan bekijken :

http://www.phpbuilder.com/columns/florian19991014.php3

Dit script maakt het mogelijk binaire data (plaatjes filmpjes whatever) in je Database op te slaan in plaats van via een verwijzing naar de file op de webserver. De vraag waarom ik dit wil is niet relevant, alleen ik wil het dus zo.

Nou werkt het uploaden allemaal prima. De data komt in het database veld te staan en dat gaat prima. Het probleem is het ophalen van de data.

Er schijnen meer problemen mee te zijn als ik de reacties op phpbuilder.com moet geloven, en ik heb alle oplossingen ook geprobeerd die daar aangeven worden, maar het mag helaas niet baten.

hieronder even het ophaal script.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

if($id) {

    // you may have to modify login information for your database server:
    @MYSQL_CONNECT("localhost","$username","$password");
    @mysql_select_db("tgp") or die("oopsie");


    $query = "select bin_data,filetype from binary_data where id=$id";
    $result = @MYSQL_QUERY($query) or die("Couldn't get image."); 

    $data = @MYSQL_RESULT($result,0,"bin_data");
    $type = @MYSQL_RESULT($result,0,"filetype");

    Header( "Content-type: $type");
    echo $data;

};
?> 


Dit gehele script wil niet werken. Verbinden met de DB is geen probleem, maar het oproepen van de data gaat niet. In de tutorial van phpbuilder wordt er gezegd je haalt de data op via bijv. http://www.jeeigenserver.com/getdata.php?id=1 . Dit geeft een lege pagina op. Als ik het via [img]"getdata.php?id=1"[/img] probeer dan is het welbekende kruisje te zien.

Heeft iemand enig idee hoe ik dit kan oplossen ?

thanx in advance :)

Verstand van Voip? Ik heb een leuke baan voor je!


Verwijderd

haal die @'s eens weg, dan krijg je waarschijnlijk een paar mooie foutmeldingen te zien. Dan is het iets makkelijker foutzoeken.

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
Verwijderd schreef op 24 september 2002 @ 23:44:
haal die @'s eens weg, dan krijg je waarschijnlijk een paar mooie foutmeldingen te zien. Dan is het iets makkelijker foutzoeken.
jammer maar helaas :( blanco page

Verstand van Voip? Ik heb een leuke baan voor je!


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
haal die @'s eens weg, dan krijg je waarschijnlijk een paar mooie foutmeldingen te zien. Dan is het iets makkelijker foutzoeken.
content-type moet dan ook op text/html he.

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
marcusk schreef op 24 september 2002 @ 23:47:
[...]
content-type moet dan ook op text/html he.
euhmz.. text/html als ik een plaatje ga ophalen ? Lijkt me vreemd. of snap ik niet wat je bedoelt :?

Verstand van Voip? Ik heb een leuke baan voor je!


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
om die foutmeldingen te kunnen zien.

trouwens, heb je error_reporting wel op E_ALL?

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
marcusk schreef op 24 september 2002 @ 23:52:
om die foutmeldingen te kunnen zien.
ah ok..

maar zoals eerder gezegd met of zonder '@' 's geen foutmelding te zien.

Verstand van Voip? Ik heb een leuke baan voor je!


Verwijderd

ik haal ook plaatjes uit de database vanwege een brak ontwerp van een voorganger:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
include("dbase.phtml");
$qim=mysql_query("SELECT foto FROM foto WHERE foto_id=$id");
$rim=mysql_fetch_array($qim);
$im =$rim[0];   
if (substr("GIF87a", $im)) 
{
    Header("Content-type: image/gif");
}
else
{
    Header("Content-type: image/jpeg");
}
print $im;

deze roep ik aan met [img]"foto.php?id=1"[/img]

misschien dat het je wat kan helpen....


[edit]
Nu zie ik dat je bij de header niet expliciet zegt dat het een image is....

probeer dat eens dus:
PHP:
1
Header("Content-type: image/$type");

[ Voor 0% gewijzigd door Verwijderd op 25-09-2002 00:07 . Reden: Oplossing? ]


  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
Verwijderd schreef op 25 september 2002 @ 00:06:
ik haal ook plaatjes uit de database vanwege een brak ontwerp van een voorganger:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
include("dbase.phtml");
$qim=mysql_query("SELECT foto FROM foto WHERE foto_id=$id");
$rim=mysql_fetch_array($qim);
$im =$rim[0];   
if (substr("GIF87a", $im)) 
{
    Header("Content-type: image/gif");
}
else
{
    Header("Content-type: image/jpeg");
}
print $im;

deze roep ik aan met [img]"foto.php?id=1"[/img]

misschien dat het je wat kan helpen....


[edit]
Nu zie ik dat je bij de header niet expliciet zegt dat het een image is....

probeer dat eens dus:
PHP:
1
Header("Content-type: image/$type");
dat doe ik wel.. zoals je (niet :P ) ziet staat er content type : $type

Die $type wordt vervangen door wat er uit mijn DB komt zetten. In dit geval image/pjpeg

maar ik ga je code ff testen..

edit:
Helaas ook dit wil niet werken. :(

Verstand van Voip? Ik heb een leuke baan voor je!


Verwijderd

Zet er eens een paar echo's in($id,$query,$type etc) en kijk welke er mist/fout gaat.
Hoe weet je zeker dat de db toegang geen probleem is? Probeer de query eens direct in de database via PHPMyAdmin ofzo..
Maak eens een paar opzettelijke fouten. Doen andere php scripts het wel goed?
Pagina: 1