Images in en uit de database
Ik heb hier een tijd geleden regelmatig domme vragen gesteld. Sinds die tijd heb ik ondertussen veel geleerd!!! T blijft gewoon leuk om mee te spelen, niet?!
Nu zit ik met het volgende. Ik sla een afbeelding verkleind op in de database. Ik zie die afbeelding [BLOB - 14 KB](of id) ook staan in de database. Nu wil ik deze afbeelding weergeven in een pagina. Dit lukte perfect voordat ik het verklein script heb toegevoegd. Kan iemand mij helpen???
Ik krijg bij de pagina waarmee ik de afbeelding wil laten zien de volgende melding Resource id #6
HET OPSLAAN IN EEN MAP EN IN DE DATABASE:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
if($_POST['Upload']){
if(!$_FILES['usrfile']['tmp_name']){
echo "het plaatje is NIET geupload";
}
else{
$filename = $_POST['filename'];
$filetype = explode(".", $_FILES['usrfile']['name']);
$filteype = array_shift($filetype);
$filetype = $filetype[0];
$file = $_FILES['usrfile']['tmp_name'];
$file_src_name = $_FILES['usrfile']['name'];
copy($_FILES['usrfile']['tmp_name'], "/home/gregoron/public_html/upload/images/".$filename.".".$filetype);
echo "het bestand ".$file_src_name." is geupload als ".$filename.".".$filetype;
$src = ImageCreateFromJPEG($file);
$width = imagesx($src);
$height = imagesy($src);
$x = 150;
$y = $height/($width/150);
$pic = imagecreatetruecolor($x,$y);
imagecopyresampled($pic,$src,0,0,0,0,$x,$y,$width,$height);
//$pic = addslashes(fread(fopen($pic,"r"), filesize($pic)));
//$pic = addslashes(fread(fopen($file, "r"), filesize($file)));
include("../Connections/Shop.php");
mysql_select_db($database_Shop, $Shop);
$pic_insert = "INSERT INTO images (Image) VALUES ('$pic')";
$controle = mysql_query($pic_insert) or die (mysql_error());
}}
?>
if($_POST['Upload']){
if(!$_FILES['usrfile']['tmp_name']){
echo "het plaatje is NIET geupload";
}
else{
$filename = $_POST['filename'];
$filetype = explode(".", $_FILES['usrfile']['name']);
$filteype = array_shift($filetype);
$filetype = $filetype[0];
$file = $_FILES['usrfile']['tmp_name'];
$file_src_name = $_FILES['usrfile']['name'];
copy($_FILES['usrfile']['tmp_name'], "/home/gregoron/public_html/upload/images/".$filename.".".$filetype);
echo "het bestand ".$file_src_name." is geupload als ".$filename.".".$filetype;
$src = ImageCreateFromJPEG($file);
$width = imagesx($src);
$height = imagesy($src);
$x = 150;
$y = $height/($width/150);
$pic = imagecreatetruecolor($x,$y);
imagecopyresampled($pic,$src,0,0,0,0,$x,$y,$width,$height);
//$pic = addslashes(fread(fopen($pic,"r"), filesize($pic)));
//$pic = addslashes(fread(fopen($file, "r"), filesize($file)));
include("../Connections/Shop.php");
mysql_select_db($database_Shop, $Shop);
$pic_insert = "INSERT INTO images (Image) VALUES ('$pic')";
$controle = mysql_query($pic_insert) or die (mysql_error());
}}
?>
HET OPHALEN UIT DE DATABASE:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$id = $_GET['ID'];
mysql_select_db($database_Shop, $Shop);
$query_image = "SELECT * FROM images WHERE ImageID = $id";
$image = mysql_query($query_image, $Shop) or die(mysql_error());
$row_image = mysql_fetch_assoc($image);
$totalRows_image = mysql_num_rows($image);
?>
$id = $_GET['ID'];
mysql_select_db($database_Shop, $Shop);
$query_image = "SELECT * FROM images WHERE ImageID = $id";
$image = mysql_query($query_image, $Shop) or die(mysql_error());
$row_image = mysql_fetch_assoc($image);
$totalRows_image = mysql_num_rows($image);
?>
Gewijzigd op 23/09/2004 23:01:00 door Gregor
Kheb niets gelezen van je probleem, maar wil toch dit schrijven: zet je afbeeldingen nou niet in een db, ook niet verkleind (keej klein beetje gelezen dan ;)), dat kost gewo0n meer tijd ...
Bedoel je dat t meer tijd kost op de server, dus totdat de pagina volledig wordt weergegeven of om te bouwen en onderhouden???
De database server wordt extra belast ... trek je conclusie zelf maar :)
eigenlijk is een database helemaal niet gemaakt om plaatjes e.d. in te gooien.. Je kunt ze beter naar een map uploaden op je server waar je het id nummer van je artikel (weet niet of dit het geval is) laat overeenkomen met het id nummer van het plaatje.. Zo gebeurt dat ook op PHPhulp.. Je checked daarna gwo0n of het idnummer.gif of .jpg (en wellicht nog meer) bestaat.. zo niet, laat niets zien, zo ja, toon plaatje :)
Als de afbeelding wordt geupload wordt tegelijkertijd het nieuwe artikel in de database geplaatst, kan ik dan ook daarna gelijk weer dat ID opvragen??? Of staat het artikel dan nog niet in de DB???