php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.08.2011, 17:58  
Neuer Benutzer
 
Registriert seit: 02.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
urkommunist befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Mssql / BLOB

Hallo Zusammen,
ich benötige eure Hilfe bei einem sehr umstrittenen Vorhaben (welches auch schon sehr oft disskutiert wurde).
Ich möchte Bilder als Blob in meiner MSSQL Datenbank speichern.
Hab auch mehrere Tutorials bearbeitet und schon verschiedene GOOGLE Suchen durchgeführt. Habe bisher auch alle entstandenen Fehler lösen können...nur hier scheine ich zu scheitern.

Bin letztlich an folgendem Post hängengeblieben Link.
Leider ohne Erfolg ich kann mir das Bild nicht mehr anzeigen lassen...nachdem ich es aus der Datenbank geholt habe.

Datenbank:
Code:
	
[content_name] [nvarchar](50) NULL,
[content_size] [int] NULL,
[content_typ] [nvarchar](50) NULL,
[content_data] [varbinary](max) NULL,
Upload des Bildes (relevanter Code...File liegt auf der Platte):
PHP-Code:
$dataString file_get_contents($uploadfile);
$arrData unpack("H*hex"$dataString);
$data_string "0x".$arrData['hex'];
                        
$query "INSERT INTO ressource_main (content_name, content_size, content_typ, content_data) "."VALUES ('$fileName', '$fileSize', '$fileType', CONVERT(varbinary(max),'$data_string', 1))";
                    print 
$query;
                        
$result $DB->query_blob($query);
            

echo 
"<br>File $fileName wurde angelegt.<br>"

Auslesen des Bildes (die URL passt...ich erreiche auch damit die PHP Datei):
PHP-Code:
<?php

error_reporting 
(E_ALL E_STRICT);
ini_set ('display_errors' 1);
        
$id $_GET['workerID'];

echo 
'<img src="http://ServerIP:8888/..../get_image.php?workerID='.$id.'" alt="bla"/>'

?>
Datei "get_image.php":
PHP-Code:
<?php
        
error_reporting 
(E_ALL E_STRICT);
ini_set ('display_errors' 1);

if(isset(
$_GET['workerID'])) {
        
            
session_start();
            include_once(
"include/class.database.php");
        
            
$DB = new DatabaseConnection();
            
            
$id $_GET['workerID'];
            
            
$query "SELECT content_name, content_size, content_typ, CONVERT(varchar(max), content_data) as content_data FROM ressource_main WHERE id = '$id'";

            
//print $query;
                        
            
$result $DB->query_blob($query);
            
            
                    
            
$content $result[0]["content_data"];
            
            
$size $result[0]["content_size"];
            
            
$type $result[0]["content_typ"];
            
            
$name $result[0]["content_name"];
            
            
$content substr ($content2);
            
            
$content pack("H*"$content);

            
header("Content-length: '.$size.'");
                    
            
header("Content-type: '.$$type.'");
            
            print 
$content

        }
    
?>

PROBLEM
Als Ergebnis wird mir das Bild natürlich nicht angezeigt. Ich seh nur "bla"

Entferne ich die Header Angaben in der Datei "get_image.php" bekomme ich auch den content zurück

Code:
Øÿ�*�JFIF��H�H��ÿáÁExif��II*���������¶�������¼��������������Ñ�������Ù���(�������1�'���á���2������>������?����,������\���������i‡����t��%ˆ����\��p��Canon�Canon EOS 5D Mark II�€ü �'��€ü �'��Adobe Photoshop Elements 6.0 Macintosh�2011:02:28 16:12:33�9��è��I��è��@���d���!���d������d���G���d������d������d���+��è��K��è��r���è���š‚����â��‚����ê��"ˆ�������'ˆ�����������0221����ò��������‘�����’ ������’����"��’ ����*��’������� ’������� ’����2���*’���:��’����40��‘’����40��’’����40��� ����0100 ������� ����‚��� ����Ã���¢����B��¢����J��¢�������¤��������¤��������¤��������¤���������¥����R���������d���?��� ���2011:02:13 11:33:40�2011:02:13 11:33:40�� �����`����ÿÿÿÿ��� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������€±U�³���!9�¾����� ��������������������������������¾������Æ��(�����������Î������ë������H������H������ÿØÿ�*�JFIF���H�H��ÿ�*�Adobe_CM�ÿî�Adobe�d€���ÿÛ�„�      ÿÀ�� �k"�ÿÝ��ÿÄ?���������� ��������� �3�!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv�*–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷�5�!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv�*–¦¶ÆÖæö'7G
usw.

Ich habe auch den Header bereits manuell gesetzt
PHP-Code:

header
("Content-type: image/jpeg"); 
ohne Erfolg....


Ich bin etwas ratlos...(und ja ich möchte immer noch Bilder in der Datenbank speichern)

Könnt Ihr mir weiterhelfen?
Vorab schon Vielen Dank!

Gruß
urkommunist ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.08.2011, 18:59  
Neuer Benutzer
 
Registriert seit: 02.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
urkommunist befindet sich auf einem aufstrebenden Ast
Standard kurzer Zusatz

...wen ich in der get_image.php nach dem konvertieren ein

PHP-Code:
            $content substr ($content2);
            
            
$content pack("H*"$content);

            
$fp fopen('C:\temp\bild.jpg''w');
            
fwrite($fp$content);

            
fclose($fp); 
durchführe, kann ich mir das Bild ohne Problem anschauen.
Also muss es etwas mit der Ausgabe des Bildes zu tun haben..
urkommunist ist offline   Mit Zitat antworten
Alt 02.08.2011, 19:27  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Du wendest unpack auf die Daten an, bevor du sie in die Datenbank steckst - irgendwie logisch, dass das auch wieder rückgängig gemacht werden will, um wieder die Originaldaten zu erhalten, findest du nicht?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 02.08.2011, 19:42  
Neuer Benutzer
 
Registriert seit: 02.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
urkommunist befindet sich auf einem aufstrebenden Ast
Standard

aber mach ich es nicht rückgängig durch:

Code:
$content = pack("H*", $content);
urkommunist ist offline   Mit Zitat antworten
Alt 02.08.2011, 19:47  
Neuer Benutzer
 
Registriert seit: 02.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
urkommunist befindet sich auf einem aufstrebenden Ast
Standard

wenn ich über Fiddler mein get_image.php aufrufe bekomme ich folgendes:

Code:
HTTP/1.1 200 OK
Date: Tue, 02 Aug 2011 17:45:03 GMT
Server: Apache/2.2.8 (Win32) PHP/5.2.17
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/jpeg

a2df
        �����JFIF��H�H�����Exif��II .......(geht so weiter)
Also das Bild wird schon ausgegeben...aber ich mache mir sorgen um das komische a2df und die Leerzeichen...
urkommunist ist offline   Mit Zitat antworten
Alt 02.08.2011, 19:58  
Neuer Benutzer
 
Registriert seit: 02.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
urkommunist befindet sich auf einem aufstrebenden Ast
Standard

Lessons learned:

Beginne ein PHP File nicht mit:

PHP-Code:
      <?php
Die Leerzeichen tauchen auch in der Bildausgabe auf....zu Dumm
urkommunist ist offline   Mit Zitat antworten
Alt 03.08.2011, 07:59  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

macht man ja auch nicht ..

Jeder "Text" vor <?php stört - und sollte eigentlich zur Fehlermeldung "cannot modify header information .. headers already sent ... " führen - nur, dass du keine Fehlerbehandlung im Code hast
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   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
Scriptsuche Mssql Script mit PHP ausführen? kalle801 Scriptbörse 1 24.02.2011 17:02
php - mssql connect yojo__ PHP-Fortgeschrittene 11 24.09.2009 09:30
BLOB auslesen beta02 PHP Tipps 2009 8 01.09.2009 20:51
HILFE ;) Mit PHP über Firewall auf eine MSSQL Datenbank zugreifen degen1 Datenbanken 2 24.04.2009 12:34
Connection zu MSSQL Server 2008 DonBolli Datenbanken 2 11.04.2009 16:57
MSSQL almeric Datenbanken 5 15.05.2006 16:33
MsSQL Verbindung mit Xampp funkt nicht! PHP-Fortgeschrittene 0 28.09.2005 08:34
MSSQL anbindung mit PHP Datenbanken 2 06.07.2005 09:29
MSSQL anbindung mit PHP PHP Tipps 2005-2 1 05.07.2005 17:56
wie mache ich eine mssql eintragung+auslesen mit php als sql djrace Beitragsarchiv 2 22.06.2005 14:41
IIS6 & PHP5 kann nicht zu mssql verbinden nautiluS PHP-Fortgeschrittene 10 30.03.2005 16:04
Word als Blob in der DB speichern Datenbanken 3 22.03.2005 16:30
Thumbnails aus BLOB PHP Tipps 2005 20 16.02.2005 10:25
blob verwenden (xtreme noob) Malfunction Datenbanken 9 03.02.2005 13:51
Datumsproblem mit PHP4 und MSSQL PHP-Fortgeschrittene 0 20.09.2004 14:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mssql blob, mssql blob alternative, ms sql blob, mssql blob php, bilder mssql, php mysql varbinary ausgeben, convert varbinary max to filestream, blob for ms sql, mssql blob auslesen, export mssql varbinary jpeg to mysql, php blob hex data unpack, ms sql blob auslesen, blob mssql, php mssql jfif, blob image anzeigen mssql, mssql as blob, mssql (blob), mssql blob feld auslesen, datei in mssql speichern, datei upload php h*hex

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:59 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