• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

bilder als binärcode in der sql-db

Status
Für weitere Antworten geschlossen.

XraYSoLo

Senior HTML'ler
bilder als binärcode in der sql-db

abend zusammen,

ich hab' mal gehört, man könne bilder wie GIF oder JPG in binärcode übersetzen und in der sql-db speichern. nun...wie macht man das, braucht man dafür einen converter oder so? ein link würde mir schon reichen...
thx

Nils aka XraYSoLo
 
ich würde dir raten, dass du die bilder hochlädst und dann einen link in der db speicherst, sonst wird die db so belastet!
 
einfach nur die bilder einlesen und als blob speichern.
warum konverter? Bilder sind IMMER Binaer daten.
aber crackpod hat recht lieber die datein hochladen und die links speichern
 
warum würdet ihr die bilder nicht in die datenbank einlesen?
ich stehe nämlich vor dem gleichen problem...
wie würde dies überhaupt gehen? muss ich da das bild zum ausgeben an en user zuerst noch als bilddatei zwischenspeichern?
 
naja mit php das bild als datei einlesen und so in die db packen als blob.
dann beim exportieren mit php aus der datenbank holen -> header schicken um dem browser zu signalisieren das die php ein bild darstellt und das bild ausgeben .
 
hat mir hier jemand einen kleinen beispielcode?
hab bis jetzt nichts gescheites gefunden...
...und dann das feld in der db als binary deklarieren?
 
du erstellst ein thumbnail scrip, das aber die größe nich verändert und anstatt image/jpeg oder dergleichen nimmste text/plain (glaub ich zumindest, dass du das nehmen muss) und danach machste wieder ein anderes script das aber diesmal als header image/jpeg macht oder gif oder welches format auch immer udn das fügste dann per <img> ein fertig!
Machs einfach mit nem simplen upload! Geht schneller is ned so rechenlastig und und und
 
Würde auch sagen !
Einfach als Link abspeichern !
(aber vorher die bilder hochladen )
und am bestern noch mit file://D:/blabla/bla.jpg verlinken :wink:
ja das ist mir schon klar... ich versuch dann so ein upload assistent zu machen, mit dem bilder upgeloadet werden können und gleich in der db gesp werden...
 
es ist wie bereits von anderen gesagt abzuraten, falls du es trozdem machen willst dann geht es so(zumindest hab ich es so gemacht):

auf einer seite einen form erstellen für den dateiupload:
<form action="change_logo.php" method="post" enctype="multipart/form-data" name="logoup" id="logoup">
<input type="file" name="logofile" size="40" accept="image/gif">

<input type="submit" value="Upload"></form>

in der "change_logo.php":

clearstatcache();
$file_size = filesize($logofile);
//falls datei gößer als 20000 bytes nciht annehmen, sonst kann dir jemand unter umständen beliebig große dateien rauftun
if ($file_size > 20000)
{
$info = "Image is to big";
}
else
{
$data = "";
$fp = fopen($logofile, "rb");
while(!feof($fp))
{
$data .= fread($fp, 1024);
}
fclose($fp);
unlink($logofile);
$data = addslashes($data);
$data = addcslashes($data, "\0");
$res = mysql_query("update database set logo = '$data' where username = '$username'");
};

das wars.

um die image anzuzeigen:
erstelle eine image.php datei die folgendermaßen aussieht:
<?
$db_server = "localhost";
$db_name = "database";
$db_user = "username";
$db_passwort = "password";
$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);
@MYSQL_SELECT_DB($db_name);
$res = mysql_query("select logo from database where username='$username'");
$data = mysql_result($res, 0, "logo");
header("Content-Type: image/gif");
header("Content-Transfer-Encoding: binary");
header("Content-length: " . strlen($data));
echo $data;
@MYSQL_CLOSE($db);
?>

das bild kannst du jetzt auf einer beliebigen seite mit:


anzeigen.


Du musst der datei nur $username übergeben, damit sie aufgrund des usernamen in der datenbank das richtige bild findet.
Das ist in meinem beispiel so, du kannst das skript so umbauen, dass es aufgrund des primary_key der tabelle die logos findet/speichert.

Grüße
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben