php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.07.2004, 23:43  
Gast
 
Beiträge: n/a
Standard Binäre Bilddaten aus mySql anzeigen

Hallo Leute,

um die binären Daten wieder als Grafik darzustellen, habe ich versucht der Anleitung auf http://www.phpbuilder.com/columns/florian19991014.php3 zu befolgen. Alles soweit geklappt, bis eben auf die Ausgabe.

In einer eigenen Datei habe ich folgende Zeilen:
<?
if(isset($_GET['bid']))
{
include("inc_dbconnect.php");

$sql = "SELECT BinaryData, Filetype FROM tblBilder WHERE ID_Bild = ".$_GET['bid'];
$result = mysql_query($sql);

$data = @MYSQL_RESULT($result,0,"BinaryData");
$type = @MYSQL_RESULT($result,0,"Filetype");

Header( "Content-type: $type");

echo $data;

mysql_close($dbconn);
}
?>

$type enthällt z. B.: image/pjpeg (ist eben der Typ, der beim Speichern der Daten erkannt wurde).

Von meiner Anzeigeseite aus versuche ich jetzt mit
[img]bildervorschau.php?bid=<?=$row->ID_Bild?>[/img]
die Grafik wieder anzuzeigen, aber ohne Erfolg! Er zeigt einfach nur das typische Grafiksymbol an, aber ohne Grafik!

Kennt jemand das Problem und kann mir spontan einen Tipp geben?
Das die Grafik korrekt im LONGBLOB der DB gespeichert wurde ist 99,9% sicher Jedenfalls zeigt er im phpMyAdmin die richtige Dateigröße der Grafik an.

Wenn ich die obige Datei direkt aufrufe (ohne Header zu verändern aber mit ob_start() und ob_end_flush() (sonst kommt immer header error)), sieht die erste Zeile der Ausgabe so aus:
ÿØÿ*JFIFÿ*ºJFXXÿØÿÛC      (...)
Mit Header zeigt er das typische Grafiksymbol an, aber eben ohne die Grafik!

Gespeichert wird die Grafik mit:
@$binarydata = addslashes(fread(fopen($bildupload, "r"), filesize($bildupload)))
ohne irgendeine Verschlüsselung. Das funzt ja auch.

Danke und Gruß
72dpi
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.07.2004, 00:00  
Gast
 
Beiträge: n/a
Standard

bildervorschau.php?bid=<?=$row->ID_Bild?>

ka aber das schaut doch sehr abendteuerlich aus

woher kommt $row mit Pfeilnotation ich sehe kein object welches erzeugt wurde ...

usw.

b) zeigt deine seite das bild an wenn du die ID im klartext mal eingibst ?
  Mit Zitat antworten
Alt 17.07.2004, 00:02  
Gast
 
Beiträge: n/a
Standard

Hi. Bilder in einer DB zu speicher ist schon Grundsätzlich eine schlechte Idee. Sie auch noch Binär(!) in einer DB zu speicher ist die noch viel schlechter. Aber für genausowelche Probs wurde Base64 entwickelt. Mein Vorschlag: Codiere deine Bilder erst in Base64, dann Speicherere Sie in deiner DB unter einenm Grossgenugen Datentyp ab, und entschlüssele sie wieder vor der Ausgabe. Vor der Ausgabe der entschlüsselten Ausgabe ( == Bild) musst du noch per "header("Content-type: $type");" den Datentyp an den Browser senden. Jetzt müsste eigentlich alles klappen.
  Mit Zitat antworten
Alt 17.07.2004, 15:42  
Gast
 
Beiträge: n/a
Standard

Ich kenne die Diskussion über die Speicherung von Bildern in Datenbanken und bin prinzipiell auch dagegen.
Allerdings hat es diesmal einen "Sicherheitsaspekt". Die Bilder dürfen nicht physisch (als Bild) irgendwo anders auf einem Server liegen, damit man dem Serverbetreiber nicht nachsagen kann, die Bilder für andere Zwecke verwendet zu haben.
Diese Bilder werden ausschließlich für einen legitimierten Bereich zugänglich sein und nur für authorisierte Mitglieder sichtbar werden (diese könnten natürlich mit den Bildern wieder machen was sie wollten, aber ... naja, dann dürften die Bilder nirgendwo gespeichert werden ).
Auch soll vermieden werden, das jemand, der den Pfad zum Bildverzeichnis kennt (woher auch immer) Zugriff auf die Bilder bekommt.

Eine andere Möglichkeit für diese Anforderungen fällt mir nicht ein!

@GiggyGsk
Wie kann ich denn Bilder anders als binär in der DB speichern (jetzt wirklich abgesehen von der Speicherung der Pfade und upload der Bilder auf den Server)?

Ansonsten werde ich die hiesigen Tips mal probieren.

Danke und Gruß
72dpi
  Mit Zitat antworten
Alt 17.07.2004, 15:47  
Gast
 
Beiträge: n/a
Standard

Ich habe doch oben schon gesagt, dass für solche Probleme extra der Base64 Algo entwickelt wurde, um Binäre Datene in ASCII Daten zu "verwandeln" und so besser handeln zu können. Alle Emailattachments werden auch mit diesen verfahren gespeichert. Kuck einfach mal unter php.net unter "base64_encode" und "base64_decode" nach ...
  Mit Zitat antworten
Alt 17.07.2004, 16:22  
Gast
 
Beiträge: n/a
Standard

@GiggGsk
Sorry für meine Unwissenheit! Ich wusste nicht, das base64 eine "echte" Alternative zur binären Speichervariante ist (obwohl sie laut Beschreibung ca 33% mehr Speicherplatz verbraucht)!

Funktionieren tut es aber leider immer noch nicht.

72dpi
  Mit Zitat antworten
Alt 17.07.2004, 17:23  
Gast
 
Beiträge: n/a
Standard

Ich habe da ne Idee: Du verbietest allen IE useren deinen Mitgliederbereich zu betreten und für die anderen kannst du ganz einfach in einem HTML Dokument folgenden Code einbetten:

PHP-Code:
<?php

echo '[img]data:image/png;base64,'.$BASE64_IMAGE_CONTENT.' [/img]';

?>
Aber da die meisten den IE haben kannste dich bei M$ bedanken das die mit ihrere Technologie 10Jahre zurückliegen und man sich so das Leben 1000mal schwerer machen muss
  Mit Zitat antworten
Alt 17.07.2004, 17:41  
Gast
 
Beiträge: n/a
Standard

Ok, jetzt weiß ich, wie's ohne den IE funzt. Da müsste ich aber ... öh ... (kenne die heutige "Marktpräsenz" des IE nicht) 70%? ... ausschließen

Gibt es denn eine Lösung für den IE?
Ich habe jetzt die Beispiele auf den verschiedenen Seiten alle probiert und bin sie mehrmalcs durchgegangen. Entweder ich hab' voll ein ander Murmel oder da stimmt irgendwas nicht. (Ok, das mit der Murmel kann ich bereits getrost bestätigen*g*)

Hat denn noch jemand eine Idee, warum es nicht geht? Bekomme immernoch nur das standard Grafiksymbol, aber ohne die eigentliche Grafik, angezeigt

Sorry für's "''rumheulen" *g* aber ... bitte, bitte ... *gg*

Thx and Greetz
72dpi
  Mit Zitat antworten
Alt 17.07.2004, 18:13  
Gast
 
Beiträge: n/a
Standard

IE hat leider fast 90% ... auf den normalen N00b Sites meinstens sogar >= 98%
  Mit Zitat antworten
Alt 20.07.2004, 08:25  
Gast
 
Beiträge: n/a
Standard

... aus den Augen, aus dem Sinn!

Wollte nochmals an mein immernoch bestehendes Problem aufmerksam machen und erneut um geniale Einfälle betteln!

Traut Euch ... gebt Euch als Genie zu erkennen

Falls sich jemand fragt: watt denn für'n Problem?
siehe oben!

Danke und Gruß
72dpi

P.S.: versprochen ... ist meine letzte Mobilmachung!
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Bild anzeigen, wenn ein bestimmter Name aus MySQL gelesen wird AJ79 Datenbanken 3 15.07.2008 13:16
Daten aus MySQL korrekt anzeigen sams9 PHP Tipps 2008 21 19.06.2008 20:58
MySQL: Select: Alles ordnen aber 1 Eintrag zuerst anzeigen SvenLittkowski Datenbanken 12 29.10.2007 21:24
selektierten Wert aus Mysql in Auswahlliste anzeigen CIMM PHP Tipps 2006 5 23.02.2006 15:37
mysql status mit php anzeigen PHP Tipps 2006 3 02.02.2006 21:14
nur letzten eintrag aus der mysql tabelle anzeigen lassen DaronM PHP Tipps 2007 7 14.11.2005 17:30
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Text mit Absätzen von mysql tabelle anzeigen Matthiasnet PHP Tipps 2005-2 2 27.07.2005 14:39
Fehler(not a valid MySQL ...)beim Anzeigen eines Formulars PHP Tipps 2005 6 25.05.2005 14:35
Text von MySql Tabelle anzeigen lassen Matthiasnet Datenbanken 2 09.02.2005 13:57
MySQL datensätze umgekehrt anzeigen PHP Tipps 2005 1 14.01.2005 20:54
Anzahl der Datensätze aus mysql in PHP anzeigen. PHP Tipps 2004 6 20.10.2004 16:10
Mysql tabellen wert in html anzeigen PHP Tipps 2004 20 29.09.2004 16:55
Bild anzeigen - Bildname kommt aus MySQL PHP Tipps 2004 9 07.09.2004 14:04
Letzten 10 Dateneinträge aus MySQL anzeigen imported_Lumio PHP Tipps 2004 2 24.08.2004 16:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
binäre bilddaten, http://www.php.de/php-fortgeschrittene/5096-binaere-bilddaten-aus-mysql-anzeigen.html, bild als binaer, mysql base64, php bild binär, binär grafik, mysql bilder anzeigen, grafik binär, bild aus mysql anzeigen, bild binär php, binär in bild, bilddaten anzeigen, php mysql bilder anzeigen, php bild binär anzeigen, binäre bilder anzeigen, bilddaten aus mysql, mysql bilddaten, bilder von mysql anzeigen blob, bild binär anzeigen, binär bild per php ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.