Image uit database halen
member.php
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
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
<div id="content">
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image"><input type="submit" name="submit" value="Upload">
</form>
<?php
if(isset($_POST['submit']))
{
include('mysql_connect.php');
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if(substr($imageType,0,5) == "image")
{
mysql_query("INSERT INTO `blob` VALUES('', '$imageName', '$imageData')");
echo "wordking code";
} else {
echo "only images are allowed!!";
}
}
?>
</div>
<div id="imageread">
<img src="showimage.php?id=6>
</div>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image"><input type="submit" name="submit" value="Upload">
</form>
<?php
if(isset($_POST['submit']))
{
include('mysql_connect.php');
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if(substr($imageType,0,5) == "image")
{
mysql_query("INSERT INTO `blob` VALUES('', '$imageName', '$imageData')");
echo "wordking code";
} else {
echo "only images are allowed!!";
}
}
?>
</div>
<div id="imageread">
<img src="showimage.php?id=6>
</div>
showimage.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include('mysql_connect.php');
if(isset($_GET['id'])){
$id = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM `blob` WHERE `id`=$id");
while($row = mysql_fetch_assoc($query))
{
$imageData = $row["image"];
}
header("content-type: image/jpeg");
echo $imageData;
} else{
echo "Error!!";
}
?>
include('mysql_connect.php');
if(isset($_GET['id'])){
$id = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM `blob` WHERE `id`=$id");
while($row = mysql_fetch_assoc($query))
{
$imageData = $row["image"];
}
header("content-type: image/jpeg");
echo $imageData;
} else{
echo "Error!!";
}
?>
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 06/04/2014 16:26:05 door - Ariën -
Waarom sla je een afbeelding op? Je kunt toch beter/makkelijker de file uploaden en het pad+naam wegschrijven in de database?
Waarom backticks in je query?
Waarom variabelen binnen quotes?
mysql_real_escape_string gebruik je bij voorkeur in de query.
Waar controleer je of de query is gelukt?
Waarom * in je query? Je hebt maar 1 item nodig: image. Dan kun je dat toch opgeven?!
Ik neem aan dat er maar 1 uitkomst is (id zal uniek zijn)? Dan heb je geen while nodig.
Mysql komt te vervallen. Gebruik mysqli of PDO.
Debuggen: bouw foutafhandeling in --> lukt de query wel?
Wat zit er in $imageData?
http://i296429.iris.fhict.nl/img/Knipsel2.PNG
dit gedeelte werkt wel want ik heb al mijn afbeeldingen in een database staan maar het uitlezen wil niet echt meewerken. alleen zie ik misschien iets over het hoofd...
zou het dan in het script zitten van showimage.php?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if(isset($_POST['submit']))
{
include('mysql_connect.php');
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if(substr($imageType,0,5) == "image")
{
mysql_query("INSERT INTO `blob` VALUES('', '$imageName', '$imageData')");
echo "wordking code";
} else {
echo "only images are allowed!!";
}
}
?>
if(isset($_POST['submit']))
{
include('mysql_connect.php');
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if(substr($imageType,0,5) == "image")
{
mysql_query("INSERT INTO `blob` VALUES('', '$imageName', '$imageData')");
echo "wordking code";
} else {
echo "only images are allowed!!";
}
}
?>
dit gedeelte werkt wel want ik heb al mijn afbeeldingen in een database staan maar het uitlezen wil niet echt meewerken. alleen zie ik misschien iets over het hoofd...
zou het dan in het script zitten van showimage.php?
Gewijzigd op 06/04/2014 16:55:10 door Enrico van der List
Hoop dat je wat met mijn opmerkingen in mijn vorige post doet/hebt gedaan.Ben je al aan het debuggen geweest?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
include('mysql_connect.php');
header("content-type: image/jpeg");
if(isset($_GET['id']) && intval($_GET['id']) > 0){
$result = mysql_query("SELECT image FROM `blob` WHERE id=" . intval($id)); // geef je tabel een andere naam!
if($row = mysql_fetch_assoc($result))
echo $row['image'];
}
?>
include('mysql_connect.php');
header("content-type: image/jpeg");
if(isset($_GET['id']) && intval($_GET['id']) > 0){
$result = mysql_query("SELECT image FROM `blob` WHERE id=" . intval($id)); // geef je tabel een andere naam!
if($row = mysql_fetch_assoc($result))
echo $row['image'];
}
?>
Toevoeging op 06/04/2014 23:59:08:
- blob is een keyword?/fieldtype. noem je tabel gewoon images of zo.
- als het script een image moet uitspugen ga dan geen foutmeldingen in tekst weergeven.
- BELANGRIJK: je geeft als content-type op dat het om een JPG afbeelding gaat. zorg er dan ook voor dat de afbeelding in dat formaat is opgeslagen want anders gaat het ook niet (helemaal) goed. Het is beter om de content-type ook in de tabel op te slaan.