Ik zou graag een plaatje willen opslaan in een mysql database en hem daarna weer graag willen weerkunnen geven. Hoe doe ik dit?
Invoegen in blob, en er weer uithalen met een bijpassende header... Waar kom je vast te zitten?
(check ook ff [topic=372637] voor voordelen, maar vooral nadelen van deze aanpak)
(check ook ff [topic=372637] voor voordelen, maar vooral nadelen van deze aanpak)
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Dus dat word een kolom aanmaken met type blob. Dan moet ik het er uithalen met een select querie en dan het result aan een variabele meegeven en dan op mijn schermpje echoŽen met daarvoor een header in de vorm van Header: Image/PNG of iets dergelijks?
Alvast bedankt.
Alvast bedankt.
Verwijderd
je kunt het plaatje niet echoen met een header ervoor, als je ook gewoon html op de pagina hebt staan. Voor elk plaatje zou je een apart script moeten aanroepen die dat doet, bv:
je kunt namelijk niet meerdere filetype headers in een bestand gebruiken. in het bestand plaatje.php haal je het plaatje uit de db en echo je het met een header er voor.
code:
1
| [img]"plaatje.php?id=4"[/img] |
je kunt namelijk niet meerdere filetype headers in een bestand gebruiken. in het bestand plaatje.php haal je het plaatje uit de db en echo je het met een header er voor.
Kijk hier 'ns... Misschien dat je hier iets aan hebt.
`Op dinsdag 08 januari 2002 17:37 schreef gang-ster het volgende:
Ik heb er wel al wat aan. Ja. Als er iemand nog een toevoeging heeft, zou dat nog beter zijn.
Om je plaatje te uploaden voeg je het volgende in je php script die het formulier afhandelt toe:
[script]
$fileinput=$userfile;
if(chop($fileinput)!="none"){
$title=$userfile_name;
$type=$userfile_type;
$image = addslashes(fread(fopen($fileinput,"r"),1000000));
$tabelwaarden = $tabelwaarden. ",foto";
$dbwaarden = $dbwaarden . ",'$image$'";
}
[/script]
Waar $userfile een file-veld is in je formulier. Dit formulier moet wel in z'n eigenschappen ENCTYPE="multipart/form-data" hebben staan.
Om het plaatje uit te lezen kun je gebruik maken van een show.php:
[show.php]
function dbconnect($host, $user, $pw, $db) {
$database = mysql_connect($host, $user, $pw);
mysql_select_db($db, $database);
return $database;
}
function runquery($query, $db) {
return mysql_query($query, $db);
}
$database = dbconnect("databasehost", "gebruikersnaam", "wachtwoord", "database");
$title="test.jpg";
$SQL = "select * from $tabel where id=$id";
$Show = runquery($SQL, $database);
$Rows = mysql_fetch_array($Show);
$Body=$Rows["$figuur"];
Header("Content-type: $type");
echo $Body;
flush();
[/show.php]
Dit script roep je aan met show.php?figuur=veldnaamblob&tabel=tabel&id=6
Naast de blob heb je ook een veld 'type' in de database waar in het bestandstype wordt opgeslagen (gif of jpeg)
Success
Pagina: 1