Toon posts:

[PHP/ Mysql] Plaatje in mysql database opslaan

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

Verwijderd

Topicstarter
Ik zou graag een plaatje willen opslaan in een mysql database en hem daarna weer graag willen weerkunnen geven. Hoe doe ik dit?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

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)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
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.

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:
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.

  • CrazyA
  • Registratie: Juli 2000
  • Laatst online: 18-07 12:28
Kijk hier 'ns... Misschien dat je hier iets aan hebt.

Verwijderd

Topicstarter
Ik heb er wel al wat aan. Ja. Als er iemand nog een toevoeging heeft, zou dat nog beter zijn.

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
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