|
You last visited: Today at 23:21
Advertisement
Image aus DB ausgeben
Discussion on Image aus DB ausgeben within the Web Development forum part of the Coders Den category.
09/08/2017, 01:58
|
#1
|
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
|
Image aus DB ausgeben
Hallo,
ich bräuchte Hilfe unzwar wenn ich ein Bild ausgebe erscheint so etwas:
Index.php
PHP Code:
<?php include 'config/connect.php'; ?>
HTML Code:
<form action="new_image.php" method="POST" enctype="multipart/form-data" name="upload">
Name:<br>
<input type="text" name="name" value="">
<br>
Bild:
<input type="file" size="30" name="datei" value="">
<br>
<input type="submit" name="submit" value="hinzu">
</form>
PHP Code:
Image.php: <?php include 'config/connect.php'; $name = $_FILES['datei']['name']; $size = $_FILES['datei']['type']; $mime = $_FILES['datei']['size']; $image = file_get_contents($_FILES['datei']['tmp_name']); $sql = "INSERT INTO image(im_name, im_type, image) VALUES (?, ?, ?);"; $insert = $pdo->prepare($sql); if($insert) { $insert->BindParam(1, $name); $insert->BindParam(2, $mime); $insert->BindParam(3, $image, PDO::PARAM_LOB); if(!$insert->execute()) { print_r($insert->errorInfo()); } else { echo 'erfolg'; $stmt = $pdo->prepare("SELECT image FROM image"); if(!$stmt->execute()) { print_r($stmt->errorInfo()); } $row = $stmt->fetch(); echo <"img src='".$row['image']."'>"; } } ?>
CREATE TABLE image(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
type VARCHAR(100) NOT NULL,
image BLOB NOT NULL
);
|
|
|
09/08/2017, 06:43
|
#2
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,351
Received Thanks: 410
|
Quote:
Originally Posted by Cc_Cc_Cc
Hallo,
ich bräuchte Hilfe unzwar wenn ich ein Bild ausgebe erscheint so etwas:
Index.php
PHP Code:
<?php include 'config/connect.php'; ?>
HTML Code:
<form action="new_image.php" method="POST" enctype="multipart/form-data" name="upload">
Name:<br>
<input type="text" name="name" value="">
<br>
Bild:
<input type="file" size="30" name="datei" value="">
<br>
<input type="submit" name="submit" value="hinzu">
</form>
PHP Code:
Image.php: <?php include 'config/connect.php'; $name = $_FILES['datei']['name']; $size = $_FILES['datei']['type']; $mime = $_FILES['datei']['size']; $image = file_get_contents($_FILES['datei']['tmp_name']); $sql = "INSERT INTO image(im_name, im_type, image) VALUES (?, ?, ?);"; $insert = $pdo->prepare($sql); if($insert) { $insert->BindParam(1, $name); $insert->BindParam(2, $mime); $insert->BindParam(3, $image, PDO::PARAM_LOB); if(!$insert->execute()) { print_r($insert->errorInfo()); } else { echo 'erfolg'; $stmt = $pdo->prepare("SELECT image FROM image"); if(!$stmt->execute()) { print_r($stmt->errorInfo()); } $row = $stmt->fetch(); echo <"img src='".$row['image']."'>"; } } ?>
CREATE TABLE image(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
type VARCHAR(100) NOT NULL,
image BLOB NOT NULL
);
|
Dein Skript funktioniert. Ich erhalte
Code:
erfolg%��m�y ��g�V��[ h([X��lx�[�~$9ΠơDQ&[�éÉ�!t��� �i����@V��CD��t���3�h�h;�J�s# �� ��p0B�߆�~�~%8� � =��U<�h-�ʨ.f�����-\�t�-d��`�)��]��}��5�[Tt�L�A�~E+�M�N���P�<�N�: ��ʣ�3��.��'_*��2���'A��t��4?�Hb�O5�?�UHݒ�?�5���E5O���q*�a?�|Ծ����w?�J��m�F��T��ж�z�\��|U�}|�R��?e��-1�Np並�p�D��=6��!�>��_N��Z^N쇲���p��֭���벯�d�Xw�e��vó�u.��Ki��{w��������Hn��C�nGHü{�� $�]���xv��k��9��/�8�������L���]esk�����t�`��5#���"N��'���7�m�˯��ʋ�MBBT�,bW!�O��#75��?5��x�y>%�a��(R���6d3q�O�>5 ��e�>�7c�N[q�{�L�P÷��u�wr���.....
Du hast nur bei dir keine Datei ausgewählt gehabt, dies solltest du vorher überprüfen, daher kommt auch die Fehlermeldung Warning: file_get_contents(): Filename cannot be empty in
|
|
|
09/08/2017, 07:30
|
#3
|
elite*gold: 0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
|
Um das Bild darzustellen aus den Binärdaten musst du im Header senden das es sich um ein Bild handelt. Danach das Bild per PHP ausgeben, nicht in einem HTML Tag.
Den Folgenden Code habe ich Mal geschrieben, vielleicht kannst du ihm wiedervewerten. $banner->Image ist die URL zu einem Bild.
PHP Code:
$info = getimagesize($banner->image);
$im;
switch($info[2])
{
case 1: //gif
$im = imagecreatefromgif($banner->image);
break;
case 2: // jpeg
$im = imagecreatefromjpeg($banner->image);
break;
case 3: // png
$im = imagecreatefrompng($banner->image);
break;
}
switch($info[2]) {
case 1: //gif
header("Content-type: image/gif");
break;
case 2: // jpeg
header("Content-type: image/jpeg");
break;
case 3: // png
header("Content-type: image/png");
break;
}
header('Content-Disposition: inline; filename="'.$banner->id.'.'.str_replace('image/',"",$info['mime']).'"');
die(file_get_contents($banner->image))
|
|
|
09/08/2017, 15:50
|
#4
|
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
|
Könntest du es mal mit meinem Code zusammenfügen? Bekomme nur Fehler wie das
Notice: Trying to get property of non-object in C:\xampp\htdocs\new_image.php on line 25
Warning: getimagesize(): Filename cannot be empty in C:\xampp\htdocs\new_image.php on line 25
Notice: Trying to get property of non-object in C:\xampp\htdocs\new_image.php on line 54
Notice: Trying to get property of non-object in C:\xampp\htdocs\new_image.php on line 55
Warning: file_get_contents(): Filename cannot be empty in C:\xampp\htdocs\new_image.php on line 55
Würde dir auch e*Gold später senden wenn ich es später bekomme.
|
|
|
09/08/2017, 16:43
|
#5
|
elite*gold: 0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
|
Zeig mal den Code, was du gemacht hast, dann schau ich heute Abend nach Arbeit mal rein.
|
|
|
09/08/2017, 17:09
|
#6
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,351
Received Thanks: 410
|
Quote:
Originally Posted by Serraniel
Um das Bild darzustellen aus den Binärdaten musst du im Header senden das es sich um ein Bild handelt. Danach das Bild per PHP ausgeben, nicht in einem HTML Tag.
Den Folgenden Code habe ich Mal geschrieben, vielleicht kannst du ihm wiedervewerten. $banner->Image ist die URL zu einem Bild.
PHP Code:
$info = getimagesize($banner->image); $im;
switch($info[2]) { case 1: //gif $im = imagecreatefromgif($banner->image); break; case 2: // jpeg $im = imagecreatefromjpeg($banner->image); break; case 3: // png $im = imagecreatefrompng($banner->image); break; }
switch($info[2]) { case 1: //gif header("Content-type: image/gif"); break; case 2: // jpeg header("Content-type: image/jpeg"); break; case 3: // png header("Content-type: image/png"); break; }
header('Content-Disposition: inline; filename="'.$banner->id.'.'.str_replace('image/',"",$info['mime']).'"'); die(file_get_contents($banner->image))
|
Er hat die Daten als Blob in der Datenbank und nicht auf dem FTP Server hochgeladen.
Du kannst mit HTML und dem img Tag einen base64 kodierten String übergeben. Ich habe das mal kurz für dich gemacht (  ). In der Datenbank habe ich eine Spalte ext hinzugefügt, wo der Dateityp gespeichert wird.
|
|
|
09/08/2017, 21:02
|
#7
|
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
|
Quote:
Originally Posted by xShizoidx
Er hat die Daten als Blob in der Datenbank und nicht auf dem FTP Server hochgeladen.
Du kannst mit HTML und dem img Tag einen base64 kodierten String übergeben. Ich habe das mal kurz für dich gemacht (  ). In der Datenbank habe ich eine Spalte ext hinzugefügt, wo der Dateityp gespeichert wird.
|
Danke dir und Serraniel !
Nur eine kurze Frage. Woran lag es denn jetzt das er es so ausgegeben hat bei mir?
|
|
|
09/08/2017, 21:45
|
#8
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
|
Quote:
Originally Posted by Cc_Cc_Cc
Danke dir und Serraniel !
Nur eine kurze Frage. Woran lag es denn jetzt das er es so ausgegeben hat bei mir?
|
Du hast einfach nur das Bild ausgegeben und der Browser hat die Das Bild auch bekommen, jedoch weiß der Browser nicht was damit zu tun ist (Ist es ein Bild? Ein Video ? Einfach nur Text ? etc..).
Daher musst du Header mit dem MIME-Type mitsenden.
|
|
|
09/09/2017, 17:00
|
#9
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,351
Received Thanks: 410
|
Quote:
Originally Posted by Cc_Cc_Cc
Danke dir und Serraniel !
Nur eine kurze Frage. Woran lag es denn jetzt das er es so ausgegeben hat bei mir?
|
Wenn du das Bild ansonsten direkt ausgegeben haben willst und nichts weiteres auf der Seite ist, kannst du es auch so machen :
Code:
<?php
header("Content-type: image/jpeg");
$img = "Bild in Base64 kodiert";
echo base64_decode($img);
?>
Kommt aber drauf an, wie du es haben willst.
|
|
|
 |
Similar Threads
|
Lawl Image - Easy Image upload
10/08/2015 - Coding Releases - 132 Replies
Hier steht euch nun die gründlich überarbeitete Version von LawlImage zur verfügung!
Mit LawlImage ist es einfach wie nie, schnell Bilder hochzuladen.
Das einzige was ihr tun müsst, ist einen Rechtsklick auf das Bild auszuführen und unter "Senden an" oder "Send To" LawlImage zu wählen.
Schneller kann man Bilder nicht hochladen!
http://image.lawl-dev.com/imgsrv.php?url=79348bed 8d5da002ffc10d36f2e916d2.png
|
Für wow geld ausgeben oder für free to play games geld ausgeben?
09/22/2013 - General Gaming Discussion - 5 Replies
Hallo,
was meint ihr sollte man für freetoplay spiel, wo paytowin herrscht, dafür sein Geld ausgeben, damit man für eine permanente (Beispiel) waffe 25€ ausgibt oder sollte man das Geld lieber in wow reinstecken und halt nur ne begrenzte Zeit spielen, man kann bei freetoplay ja immer spielen, aber bei wow hast du ja alle "Waffen" für immer, also was meint ihr sollte man in wow das Geld reinstecken oder eher in ein paytowin system es reinsteken? :)
|
[Trading] Signature image + topic image
07/31/2013 - League of Legends Trading - 0 Replies
If you can make those please add me on my skype, which can be found in my signature.
|
Dibiase - New Sig/Full Size Image - [GIANT IMAGE WARNING]
10/26/2011 - General Art - 1 Replies
WARNING - SOME OF THESE IMAGES ARE MASSIVE(OVER 2000 PIXELS WIDE/1000 PIXELS HIGH).
This is my latest signature collection, the full size images show the detail.
Full-Size:
http://img339.imageshack.us/img339/971/dibiaseful l.png
Super-Sized:
|
Neuer Image Hoster / New Image Hoster
05/15/2010 - Main - 9 Replies
Hi,
ich habe einen neuen Image-Hoster erstellt. Ich hoffe das ich einige Nutzer finde.
Falls ihr irgendwelche verbesserungs vorschläge habt bitte posten.
Bitte Hier Klicken
Hi,
i created a new Image-Hoster. I hope that i find some users.
If you have any tips to make this site better please post them.
|
All times are GMT +1. The time now is 23:22.
|
|