Førstesiden / PHP & MySQL / bilde.html
Lagre og skrive ut bilder fra en database
Det første vi trenger, er en tabell vi kan lagre bildene våre i. I denne tabellen må vi ha et felt som er av datatypen LONGBLOB. Det vil si at vi forteller databasen at vi skal lagre en stor binærfil her.
Tabellen du trenger:
CREATE TABLE tbl_bilde (
id int(4) NOT NULL auto_increment,
bin_data longblob,
filename varchar(50) default NULL,
filesize varchar(50) default NULL,
filetype varchar(50) default NULL,
height int(11) NOT NULL default '0',
width int(11) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;
Vi definerer et konfig fil med variabler vi ofte bruker. Denne kaller du config.php
<?php
$mysql_host = "localhost"; // Mysql host
$mysql_user = "brukernavn";// Mysql brukernavn
$mysql_pass = "passord"; // Mysql passord
$mysql_db = "sindrem"; // Mysql database
$width = 100; // Bredde på thumbnails
$height = 100; // Høyde på thumbnails
$display = 8; // Antall thumbnail på hver side
$per_linje = 4; // Antall thumbnails på hver linje
$XX = "<br>Ingen bilder!</br>"; // Feilmelding dersom ingen bilder finnes.
?>
Vi trenger også en form, slik at brukeren har mulighet for å browse til den fila han ønsker, for så å laste denne opp. MAX_FILE_SIZE setter begrensninger på hvor stor fila som lastes opp, kan være. Oppgitt i kilobyte.
I fila upload.php:
<form method="post" action="lastopp.php" enctype="multipart/form-data">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>Velg bilde du vil laste opp:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>
Fila som er valgt i upload.php, sender vi så til lastopp.php. Denne filen laster bildet inn i en database.
I fila lastopp.php:
<?php
include('config.php');
MYSQL_CONNECT($mysql_host,$mysql_user,$mysql_pass);
mysql_select_db($mysql_db);
extract($_FILES['form_data']);
$data = mysql_escape_string(fread(fopen($tmp_name, "rb"), filesize($tmp_name)));
$info = getimagesize($tmp_name);
$width =$info[0];
$height=$info[1];
//echo "$height - $width";
$result=MYSQL_QUERY("INSERT INTO tbl_bilde (bin_data,filename,filesize,filetype,height,width)".
"VALUES ('$data','$name','$size','$type','$height','$width')");
print "<p>Bilde ble lastet opp.</b>";
MYSQL_CLOSE();
?>
Vi har nå lastet opp bildet vårt i databasen. I del 2 ser vi på hvordan vi kan skrive denne ut.
Til side 2 >>
Funnet på PHPBuilder og skrevet om litt.
Utskriftsvennlig versjon | Forslag til endring av artikkel | Skriv ut | Ny kommentar
Det er ingen kommentarer til denne artikkelen. | |
|