php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 06-09-2004, 14:40
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard JPG erzeugen aus MS Access

Hallo Leute!

Ich möchte aus einer Access Datenbank Bilder auslesen. Diese Bilder sind in der Datenbank als OLE-Objekt gespeichert. Ich habe mittels ODBC eine Verbindung zur Access-Datenbank aufgebaut. Das funzt auch sehr gut. Ich kann auch alle Werte auslesen.

Die Werte für das JPGE sind z.b. folgende:

ÿØÿàJFIF,,ÿíPhotoshop 3.08BIMÿÛC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;ÿÛC  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ÿÀôw"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ× ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡

Wie kann ich nun aus diesen Werten ein JPG Bild erzeugen???
Kann mir irgendjemand ein Tipp geben?

Bedanke mich schonmal für eure Bemühungen

Gruss

Christian
Mit Zitat antworten
  #2 (permalink)  
Alt 06-09-2004, 14:55
schmalle
  Ich Root, Du nix
Links : Onlinestatus : schmalle ist offline
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
schmalle ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du musst einen entsprechenden header senden. Aus diesem und tausend anderen Gründen sollte man immer nur den Pfad zu den Bildern inder DB speichern
__________________
h.a.n.d.
Schmalle

http://impressed.by
http://blog.schmalenberger.it



Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
... nur ohne :-)
Mit Zitat antworten
  #3 (permalink)  
Alt 06-09-2004, 15:36
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo!

Es liegt nicht am Header!

zur Zeit habe ich folgendes Script
$pname = Name der JPG Datei z.b. 10.jpg
$blob = ist das OLE-Object

while(odbc_fetch_row($queryexe))
{
$pname = odbc_result($queryexe, 22);
$blob = odbc_result($queryexe,29);
$myFile= fopen($pname,'w+'); // Open the file for writing
fwrite($myFile,$blob);
fclose($myFile);
// $altesBild=ImageCreateFromJPEG("$PicPathIn"."$pname");

echo ($pname."<br>---- blob --<br><br>");
echo ($blob."<br>---- ende blob --- <br><br><br>");
}

Die gesamte JPG werden auch im Verzeichnis erstellt. Allerdings, wenn ich die JPGs öffne, dann bekomme ich entweder nur ein weisses Bild oder ein nicht ganz vollständiges Bild. Wie dieses

http://www.udo-baldewein.de/test.jpg

Woran kann das liegen? Muss man irgendwas besonderes beachten, wenn man mit dem Befehl fwrite arbeitet?

Gruss
Christian
EDIT:
img-Tag deleted by asp2php.

Geändert von asp2php (06-09-2004 um 15:48 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 06-09-2004, 15:42
sike
 Newbie
Links : Onlinestatus : sike ist offline
Registriert seit: Jun 2004
Beiträge: 19
sike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von schmalle
Du musst einen entsprechenden header senden. Aus diesem und tausend anderen Gründen sollte man immer nur den Pfad zu den Bildern inder DB speichern
ne, das reicht leider nicht. du musst normalerweise ein paar bytes vom anfang der daten auslassen. das liegt an der bescheurten ole verpackung. soweit ich mich erinnern kann muss mann die ersten 78 byte weglassen.

gruss
Sike
Mit Zitat antworten
  #5 (permalink)  
Alt 06-09-2004, 16:11
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi Silke!

Vielen Dank für diese wertvolle Information. Und wie bekomme ich jetzt raus, wieviel byte ich abschneiden muss.

Und die zweite blöde frage. Wie kann ich z.b. 78 byte von dem Stream abschneiden???

Gruss

Christian
Mit Zitat antworten
  #6 (permalink)  
Alt 06-09-2004, 16:15
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://www.php.net/manual/en/function.substr.php
Mit Zitat antworten
  #7 (permalink)  
Alt 06-09-2004, 16:19
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank
Mit Zitat antworten
  #8 (permalink)  
Alt 06-09-2004, 16:35
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
soweit ich mich erinnern kann muss mann die ersten 78 byte weglassen.
Ich habe jetzt folgende Zeile in die while schleife eingebaut.

$b = substr($blob, 79, -1);
fputs($myFile,$b);

Leider funzt das gar nicht.
Jetzt bekomme ich keine Bilder mehr angezeigt.

Bin für weitere Hinweise sehr, sehr dankbar.
Würde mich echt freuen, wenn ich es mit eurer Hilfe schaffen würde.

Gruss

Christian
Mit Zitat antworten
  #9 (permalink)  
Alt 06-09-2004, 16:42
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was willst du mit -1 in 3. Parameter
außerdem wird's von 0 gezählt, also:
$blob = substr($blob,78); -> byte 0 bis 77 weggeschnitten
Mit Zitat antworten
  #10 (permalink)  
Alt 06-09-2004, 16:59
sike
 Newbie
Links : Onlinestatus : sike ist offline
Registriert seit: Jun 2004
Beiträge: 19
sike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von the_duke
Hi Silke!
hrhr, silke.... rofl (=

SIKE plz - danke
Mit Zitat antworten
  #11 (permalink)  
Alt 06-09-2004, 17:03
sike
 Newbie
Links : Onlinestatus : sike ist offline
Registriert seit: Jun 2004
Beiträge: 19
sike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also das mit den byte abschneiden stammt noch aus meine
delphi tagen... ich kann dir leider nicht mit sicherheit sagen ob
das auch bei php zutrifft. soweit ich aber den anfang von dem output
den du ganz oben gepostet hast beurteilen kann stimmt der jpg header. sieht also so aus das du das weglassen weg lassen kannst ^^

ein paar tips:

- hast du mal die dateigrössen verglichen?
- mal nen sehr kleines jpg benutz?
- vergleiche das per php erzeugte und das original mit einem hexeditor


Sike
Mit Zitat antworten
  #12 (permalink)  
Alt 06-09-2004, 17:22
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi Sike!

Sorry, dass ich deinen Namen falsch geschreiben haben.

Ich werde eure Tipps morgen früh mal ausprobieren.

Bis dahin. Erstmal vielen Dank


Hi asp2php

Du hast natürlich recht. Ich werde den Substr. mal umbauen. Aber das werde ich erst morgen machen

Gruss

Christian
Mit Zitat antworten
  #13 (permalink)  
Alt 07-09-2004, 11:21
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Leute!

Zitat:
- hast du mal die dateigrössen verglichen?
ja das habe ich gemacht. Und das ist wirklich sehr merkwürdig.
Das original JPG hat eine Grösse von 40.563 Bytes 375 x 500.

Das JPG aus der Access-Datenbank hat nur eine Grösse von 4.096 Bytes.

Woran kann das liegen.
Die HexWerte kommen zur Zeit so aus der DB. Ist dort vielleicht ein Fehler im Script. Warum werden nur 4.096 Bytes geschrieben?

while(odbc_fetch_row($queryexe))
{
$pname = odbc_result($queryexe, 22);
$blob = odbc_result($queryexe,29);
$myFile= fopen($pname,'w+'); // Open the file for writing
stream_set_write_buffer($myFile, 0);
fputs($myFile,$blob);
fflush ($myFile);
fclose($myFile);
}


Gruss
Christian
Mit Zitat antworten
  #14 (permalink)  
Alt 07-09-2004, 13:11
Quickborner
 Junior Member
Links : Onlinestatus : Quickborner ist offline
Registriert seit: May 2004
Beiträge: 62
Quickborner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
ÿØÿàJFIF ...
Diese JPG-Signatur ist nicht ganz korrekt, die Längenangaben nach dem Start of Scan sind verschoben (vermutlich liegt das aber nur an verschluckten 0x00 im Forum)

4096 scheint ein Defaultwert von odbc_result() zu sein;
ändert sich etwas, wenn du folgende Zeilen _vor_ das erste odbc_result() einfügst ?
PHP-Code:
odbc_binmode($queryexeODBC_BINMODE_RETURN); // daten voll binaer holen
odbc_longreadlen($queryexe0); // alle binaerdaten zurueckgeben 

nice day
Quickborner
Mit Zitat antworten
  #15 (permalink)  
Alt 07-09-2004, 16:21
the_duke
 Newbie
Links : Onlinestatus : the_duke ist offline
Registriert seit: Jan 2004
Beiträge: 37
the_duke ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
odbc_binmode($queryexe, ODBC_BINMODE_RETURN); // daten voll binaer holen
Hi Quickborner!

du hast sicherlich recht, das es sich bei den 4096 um ein Defaultwert bei dem SQL-Result handelt.

Ich habe jetzt mal deine beiden Zeilen in mein codeblock eingebaut. Leider funzt es nicht richtig.

Die Bilder haben jetzt nur noch eine grösse von 1 Byte!

mmh... Ich glaube ich bin kurz davor es mit eurer Hilfe zu schaffen. Vielleicht habt ihr ja noch andere gute Tipps.

Schönen Tag noch

Christian
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft haben
Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft habenSEO oder SEA? Warum SEO die besserer Methode ist.

01.10.2021 | Berni

Kundengewinnung und Kundenbindung
Kundengewinnung und KundenbindungVertrieb läuft doch immer persönlich. Das funktioniert nicht mit dem Internet! Wirklich?

24.09.2021 | Berni


 

Aktuelle PHP Scripte

PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

28.10.2021 mirko_swm | Kategorie: PHP/ Mail
Guestbook Light ansehen Guestbook Light

Das Guestbook Light (kurz: "Gblight") ist ein kinderleichtes Gästebuch in PHP. Durch den Einsatz einer SQLite Datenbank ist es einfach, leicht portabel und schnell. Aufgrund moderner Techniken erfüllt Gblight auch die neuesten Webstandards.

28.10.2021 scripthostingnet | Kategorie: PHP/ Gaestebuch
AdRotator Light ansehen AdRotator Light

AdRotator Light (kurz: "Arlight") ist ein kostenloser und spielend einfach zu bedienender AdServer in PHP.

18.10.2021 scripthostingnet | Kategorie: PHP/ Bannerverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:37 Uhr.