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 16-03-2005, 13:08
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard Daten aus BLOB auslesen und anzeigen

Hallo zusammen

Eigentlich kann ich meine Frage kurz fassen...

Warum funzt das nicht:
PHP-Code:
<? session_start();
include(
$_SERVER['DOCUMENT_ROOT'] . "/inc/config.inc.php");
include(
$_SERVER['DOCUMENT_ROOT'] . "/inc/as400.inc.php");

$svSQL  "call MARKT.MAILBOXGETNR('$user', $nummer)";
$res odbc_exec($connectionID,$svSQL);
$aRow=odbc_fetch_myarray($res);

header('Content-Type: application/pdf');
?>
<body>
<? 
// echo $aRow["MIMETYPE"];
echo $aRow["FILEINH"];  ?>
</body>
</html>
Aus der Variable $aRow["MIMETYPE"] erhalte ich den MimeType, welcher das in der Variable $aRow["FILEINH"] enthaltene Dokument hat.

Die Daten in $aRow["FILEINH"] werden aus einen BLOB-Feld ausgelesen.
Den Content-Type habe ich im Moment hart codiert, aber wenn das funzt, wird natürlich die Variable übergeben.

Der Zugriff und das Auslesen aus der DB geht. Nur die Anzeige macht Schwierigkeiten. Die Daten werden nicht als PDF sondern als Datenstream angezeigt.


Nach dem durchlesen einiger Beiträge zum Thema hier im Forum, müsste das so allerdings funktionieren. (ja, ich hab die Boardsuche verwendet)

Danke für eure Tipps.


Gruss
Philipp
Mit Zitat antworten
  #2 (permalink)  
Alt 16-03-2005, 13:17
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

seufz, was haben denn die HTML-Tags darin verloren? nimm sie raus, dann funz auch.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-03-2005, 14:05
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab ich gemacht...

Jetzt will der Browser die php-Datei downloaden. Wenn ich dann auf öffnen klicke, dann kommt die Meldung, dass er die Datei nicht finden kann..


P.S.: das ist genau das Problem, wie es schon von einigen anderen hier beschrieben wurde. Nur eine wirkliche Lösung hab ich nirgends gefunden...

Geändert von philippCH (16-03-2005 um 14:16 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 16-03-2005, 14:19
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dann sende doch vernünftige, komplette header für den d/l
Mit Zitat antworten
  #5 (permalink)  
Alt 16-03-2005, 14:25
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

... und sei sicher, dass dein Browser diese auch versteht. Kein blöder Witz, hat mich schon mal zwei Tage gekostet.
Mit Zitat antworten
  #6 (permalink)  
Alt 16-03-2005, 14:33
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also mein Browser, mit dem ich das ganze teste ist der IE 6.0.2900.

Die win-typische Sicherheitswarnung, die bei jedem Downloadversuch erscheint besagt auch, dass es sich um ein pdf handelt, das heruntergeladen werden soll...

Nur wär's jetzt noch schön, wenn mir jemand sagen kann, was den ein "vernünftiger" Header sein soll. Weder das Forum, noch der Link von asp2php bringen mich weiter. Und Google schon gleich gar nicht.

Alles was ich rausfinde ist, dass es so gehen müsste. Tut es aber nicht....
Mit Zitat antworten
  #7 (permalink)  
Alt 16-03-2005, 14:47
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von philippCH

Nur wär's jetzt noch schön, wenn mir jemand sagen kann, was den ein "vernünftiger" Header sein soll. Weder das Forum, noch der Link von asp2php bringen mich weiter. Und Google schon gleich gar nicht.
nur weil du unfähig bist, weiterführende Links zu verwenden, darfst du noch lange nicht sagen, dass ich dir ungenügende Information geliefert habe

Zitat:
Auszug aus Manual

header() wird zum Senden von HTTP Anfangsinformationen (Headern) benutzt. Weitere Informationen über HTTP Header finden Sie unter HTTP/1.1 specification.
Klick auf HTTP/1.1 und etwas nach unten scrollen: http://www.w3.org/Protocols/rfc2616/...c14.html#sec14
Mit Zitat antworten
  #8 (permalink)  
Alt 16-03-2005, 14:58
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
nur weil du unfähig bist,...
Danke für dein Kompliment... Aber ich hab ja auch nie das Gegenteil behauptet!!!

Vielleicht führst du dir mal den Sinn von einem (diesem) Forum vor Augen.

Leute, die ein Problem haben posten es hier und erhoffen sich eine Antwort, die ihnen:

a) verständlich ist
b) weiterhilft

Ich schreibe ja hier nicht zur reinen Selbsbefriedigung rein, sondern weil ich eben nicht weis, was ich tun soll, wo ich den Bockmist geschossen habe. Und deine Antworten helfen mir da nunmal nicht weiter.

Ich bin mir sicher, dass es nur ein kleiner verdammter Eintrag ist, der mir fehlt. Also warum sagst den nicht einfach!!! Dann wäre ich glücklich und diese Diskussion beendet. So wie du schreibst gehe ich nämlich davon aus, dass du die Antwort weist.


Nachtrag:
Das es ein Header-Problem sein könnte ist mir nun ausreichend klar. Das mir der Link, aus deinem vorigen Beitrag die Lösung geben kann auch. Aber genau derart qulifizierte Aussagen wie:
Zitat:
Klick auf HTTP/1.1 und etwas nach unten scrollen
meine ich, wenn ich sage, dass mir deine Antworten nicht helfen. Wie soll ich in einem 37 Seiten-Dokument eine Antwort auf eine Frage finden, wenn ich die Frage ja nicht mal weis...

Geändert von philippCH (16-03-2005 um 16:04 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 16-03-2005, 16:02
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

PHP-Code:
<? /* VON DIR */
session_start();
include(
$_SERVER['DOCUMENT_ROOT'] . "/inc/config.inc.php");
include(
$_SERVER['DOCUMENT_ROOT'] . "/inc/as400.inc.php");
$svSQL  "call MARKT.MAILBOXGETNR('$user', $nummer)";
$res odbc_exec($connectionID,$svSQL);
$aRow=odbc_fetch_myarray($res);

/* VON DER VERLINKTEN SEITE */
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
// readfile('original.pdf'); nein, das brauchen wir nicht (einkommentiert)

/* VON DIR */
echo $aRow["FILEINH"];
?>
*vorkau*
Mit Zitat antworten
  #10 (permalink)  
Alt 16-03-2005, 16:13
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@onemorenerd
Danke für die verständliche Antwort

Wenn ich dich richtig verstehe, dann gehst du davon aus, dass ich auf das Original-PDF zugreifen kann. Aber genau das kann ich nicht.

Die PDF-Datei liegt in einem BLOB-Feld auf dem AS/400. Und nur da.... Der Inhalt von diesem Feld steht in der Variable $aRow["FILEINH"].

Ich muss aus den Daten aus diesem BLOB-Feld, welche ich in der benannten Variable vorliegen habe wieder ein PDF (oder doc, xls, jpg,...) zusammensetzen und mit dem entsprechenden, für das Format passende lokale Programm, anzeigen.

Ob dies nun im Browser als Plug-in oder direkt mit dem Programm gemacht wird, ist dabei egal.
Mit Zitat antworten
  #11 (permalink)  
Alt 16-03-2005, 16:32
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich gehe überhaupt nicht davon aus!
Lies http://www.faqs.org/rfcs/rfc2183, notfalls noch http://www.php-faq.de/q/q-datei-download.html (das hat mir damals geholfen).


EDIT:
ersten link gefixt

Geändert von wahsaga (16-03-2005 um 16:56 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 16-03-2005, 16:55
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

der erste Link scheint defekt zu sein.

Den Beitrag unter dem zweiten habe ich gelesen... 5x... aber verstehen tu ich es nicht.

Ich habe noch nie auf BLOB-Felder zugreifen müssen. Und wenn doch, dann hab ich davon nichts mitgekriegt, weil der Inhalt einfach nur Text war und deshalb direkt angezeigt werden konnte.

EDIT:
Ich verstehs ja schon auf Deutsch nicht. Wie soll ich denn das in Englisch auf die Reihe kriegen...

Geändert von philippCH (16-03-2005 um 17:02 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 16-03-2005, 17:09
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Dein Problem ist:
Zitat:
Nur die Anzeige macht Schwierigkeiten. Die Daten werden nicht als PDF sondern als Datenstream angezeigt.
Das hat mit dem BLOB überhaupt nichts zu tun sondern einzig mit den davor gesendeten Headern.
PHP-Code:
<?
session_start
();
include(
$_SERVER['DOCUMENT_ROOT'] . "/inc/config.inc.php");
include(
$_SERVER['DOCUMENT_ROOT'] . "/inc/as400.inc.php");
$svSQL  "call MARKT.MAILBOXGETNR('$user', $nummer)";
$res odbc_exec($connectionID,$svSQL);
$aRow=odbc_fetch_myarray($res);
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
echo 
$aRow["FILEINH"];
?>
Was passiert?
Mit Zitat antworten
  #14 (permalink)  
Alt 16-03-2005, 17:41
philippCH
 Registrierter Benutzer
Links : Onlinestatus : philippCH ist offline
Registriert seit: Aug 2003
Beiträge: 161
philippCH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielleicht macht es Sinn, wenn ich mal Schritt für Schritt sage, was ich mache:

Aufgerufen wird ein Link nach folgender Syntax:
https://www.xxx.ch/mailbox/showmail....=stm&nummer=27

Mit den im Link übergebenen Werten mache ich den call auf das AS/400.

Der Code in showmail.php entspricht jetzt genau dem, wie du in vorhin gepostet hast (copy/paste).


Wenn ich einen obigen Link anklicke, dann erscheint eine Downloadauforderung. Hier kann ich nun wählen, ob ich die Datei öffnen oder speichern will.

Aber egal was ich mache, es kommt immer die Meldung, dass die Seite nicht geöffnet werden kann, weil sie entweder nicht vorhanden oder nicht verfügbar ist.
EDIT:
Hab ich noch vergessen: Der Datenstream wird nur dann angezeigt, wenn ich keine header-infos mitgebe. Aber das ist sogar mir klar...

Geändert von philippCH (16-03-2005 um 17:48 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 16-03-2005, 18:16
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wenn du die beiden Header nicht sendest (auskommentierst), wird der Inhalt von $aRow["FILEINH"] angezeigt. Sendest du sie, kommen keine Daten. Die Header gehen aber schon noch raus, denn du bekommst den Download-Dialog angezeigt. Stimmt das soweit?

Versuch mal das (valides PDF für Acroreader6):
PHP-Code:
<?php
header
('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
echo 
'%PDF-1.3'.chr(10).'1 0 obj << /Pages 1 0 R >> endobj trailer << /Root 1 0 R >> %%EOF';
?>
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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

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