Fileupload til database

 

Databasen
Du skal starte med at oprette denne tabel i databasen


CREATE TABLE filer (
id int(4) NOT NULL auto_increment,
data longblob NOT NULL,
name varchar(50) NOT NULL default ´´,
type varchar(50) NOT NULL default ´´,
size varchar(50) NOT NULL default ´´,
PRIMARY KEY (id)
) TYPE=MyISAM;



cls_fileupload.php

<?
class cls_fileupload {
var $maxfilesize;
var $filetype;

function upload ($filefield) {

// Først henter vi vores felter i arrayet $_FILES
$filefield = $_FILES[$filefield]['tmp_name'];
$filefield_name = $_FILES[$filefield]['name'];
$filefield_size = $_FILES[$filefield]['size'];
$filefield_type = $_FILES[$filefield]['type'];

if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
and (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size) {

// Så gør vi vores indholdet af vores fil klar til at komme ned i databasen
$data = addslashes(fread(fopen($filefield, "r"), filesize($filefield)));

// Så gemmer vi filen i vores database
mysql_query("INSERT INTO filer (name, data, size, type) \n VALUES
(´".$filefield_name."´, ´".$data."´, ´".$filefield_size."´, ´".$filefield_type."´)");
}

function vis ($id) {
// Her henter vi vores data
$resultat = mysql_query("SELECT data, type from filer where id = ".$id);
while($raekke = mysql_fetch_array($resultat)) { $svar[] = $raekke; }

// Hvis $id ikke findes i databasen
if (sizeof($svar) == 0) {
echo "Kunne ikke finde filen med id ".$id." i databasen!!!";

} else {
// Hvis $id findes i databasen
// Træk værdierne ud
extract($svar[0]);

// sæt typen af indholdet (Husk at der ikke må være sendt noget før!)
header("content-type: ".$type);

// Udskriv filen
echo $data;
}
}

function slet ($id) {
// Slet $id
mysql_query("DELETE FROM filer WHERE id = ".$id.";");
}
}
// Nu mangler vi bare at lave en henvisning til vores klasse
$fileupload = new cls_fileupload;
?>



Eksempel

upload.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Fileupload</TITLE>
</HEAD>

<BODY>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="filen" size="40">
<input type="submit" name="submit">
</form>
</BODY>
</HTML>


upload.php

<?
// Henter klassen
require("cls_fileupload.php");

// Brug dine egne oplysninger
$server = "din server";
$bruger = "din bruger";
$kodeord = "din kode";
$database = "din database";

// Forbinder til MySQL og vælger database
mysql_connect("$server","$bruger","$kodeord");
mysql_select_db("$database");

// Her sætter vi klassen op
$fileupload->maxfilesize = 200 * 1024 // 200kb - skal angives i bytes
$fileupload->filetype = "jpg$|jpeg$|gif$|png$"; // jpg, jpeg, gif eller png

// gemmer filen i databasen
$fileupload->upload("filen");

// Lukker vores forbindelse til MySQL
mysql_close();

echo "Filen er blevet gemt";
?>



God fornøjelse





Skrevet af: Asbjørn Sloth Tønnesen | Dato : 2003-12-30 | Læst : 13164 gange