Sziasztok!
Kényszerből a képeket adatbázisban kell tárolnom.
Lekérdezéskor viszont nem tudom megjeleníteni. Hibás, sérült fájlként ismeri fel. Ha az adatbázisba Myadmin felületen közvetlenül viszem be a képet, akkor gond nélkül ki tudom olvasni, és megjeleníteni. A megjelenítést kétféleképpen is próbáltam: közvetlenül (header ...) megjeleníteni, illetve adatbázisból kiolvasás után fájlba kiírtam, majd onnan megjeleníteni.
Olyannak tűnik a hiba, mintha a képfájlok (jpg) metaadatai nem töltődnének be a longblob mezőbe. (Ez csak tipp.)
Mellékelném a programot. Ez kétfájl, az egyik egy sima form, a másik az, amelyik feldolgozza az adatokat. Ez a fájl a feldolgozás után ki is olvassa az adatbázisból a képet, és próbálná megjeleníteni.Sikertelenül. Volt olyan eset, hogy Firefox-l megjelent a kép, de Chrome-l illetve IE-vel soha nem jelent meg.
( A beküldés előtt megnéztem az előnézetet, és a tag (csibecsőrök) jelek nem jelentek meg. Ezért ezeket kitöröltem innen. )
Beolvasás:
<?php
require('fuggvenyek.php');
print ("body bgcolor=\"#dce8cf\" ");
# file feltoltes
print "br File feltöltése br";
print "form enctype=\"multipart/form-data\" action=\"proba-1.php\" method=\"post\" ";
print "Tölts fel egy képet magadról";
print "input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"2048000\" ";
print "input type=\"file\" name=\"arckepe\" ";
print "input type=\"submit\" name=\"Tovabb\" value=\"Tovább\" ";
print "input type=\"reset\" name=\"Alaphelyzet\" value=\"Alaphelyzet\" ";
print "/form";
?>
Adatbázisba rögzítés, kiolvasás, megjelenítés:
<?php
# hivo : buvar.php
require('fuggvenyek.php'); # adatbazis megnyitas
print ("body bgcolor=\"#dce8cf\" ");
$FileName =addslashes($_FILES['arckepe']['name']);
$filesize =$_FILES['arckepe']['size'];
$filetype =$_FILES['arckepe']['type'];
$filecontent =file_get_contents($_FILES['arckepe']['tmp_name']);
$filecontent =addslashes($filecontent);
$sql="insert into proba (name, type, size, content) values ('$FileName', '$filetype', '$filesize', '$filecontent') ";
$success=mysql_query($sql) or die ("Nem sikerült az insert
" .mysql_error() ."
" .mysql_errno() );
# file letoltese
$sql="select name, type, size, content from proba where id='1' ";
$result=mysql_query($sql) or die ("Nem sikerult a select");
list ($name, $type, $size, $content) = mysql_fetch_array($result);
#header("Content-length: $size");
#header("Content-type: $type");
#header("Content-Disposition: attachment; filename=$name");
#echo $content;
#exit;
$ut="kepek/".$name;
file_put_contents("$ut", "$content") or die("
nem irtam a fajlba");
print "img widht=\"120\" height=\"90\" src= \"$ut\" /img";
?>
Segítségeteket előre is köszönöm
Gábor