Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
PDFs in der MySQL-DB ablegen und aus dieser wieder anzeigen
Diskutiere PDFs in der MySQL-DB ablegen und aus dieser wieder anzeigen im Webentwicklung, Hosting & Programmierung Forum im Bereich Netzwerk & Internet; Hallo...
ich habe den Auftrag bekommen, einen ganzen Batzen PDF-Dateien als BLOB in eine MySQL-Datenbank zu schreiben und diese dann per Skript...
#1
M
Michael_B
Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Hallo...
ich habe den Auftrag bekommen, einen ganzen Batzen PDF-Dateien als BLOB in eine MySQL-Datenbank zu schreiben und diese dann per Skript auf der Webseite anzeigen zu lassen... Jetzt steh ich voll auf dem Schlauch. Hab auch gegoogelt und die Forenhilfe genutzt, aber bisher nur Sachen zum Thema PDFs per PHP erstellen gefunden (also phplib und fpdf).
Die PDF-Dateien sind ja bereits vorhanden, sollen nun aber in die DB transferiert werden. Zu jedem Produkt gibt es dann auch so ein PDF. Auf der Produktseite soll dann also ein Link stehen, mit dem man sich dann die PDF in einem anderen Browserfenster angucken können soll...
Jemand eine Ahnung wie ich das angehen soll? Wäre sehr dankbar für jeden Tipp...
M.
#2
M
Michael
Bekanntes Mitglied
Dabei seit
01.01.2001
Beiträge
2.134
Reaktionspunkte
0
Hi
PDF Datei binary safe als String einlesen, diesen mit addslashes() in die Datenbank in das BLOB Feld eintragen.
Dann hast du ein php Skript was die pdfs wieder ausliest: das setzt per header() den entsprechenden Content Type und schreibt dann einfach den pdf inhalt raus.
Zum Anzeigen des PDFs musst du also auf das PHP Skript verlinken.
Es gibt dazu einige Anleitungen wo das mit Bildern genutzt wird, eventuell findest du da was.
Gruß, Michael
#3
G
Gandalf_the_Grey
Bekanntes Mitglied
Dabei seit
19.11.2003
Beiträge
2.768
Reaktionspunkte
0
Ort
Großraum Frankfurt/Main
Och menno, jetzt bin ich schon wieder zu langsam :'(
#4
C
connyas
Bekanntes Mitglied
Dabei seit
04.12.2004
Beiträge
5.463
Reaktionspunkte
0
Ort
Stuttgart
Die einfachste Lösung währe allerdings die vorhandenen *.pdf auf dem Webserver in einem/mehreren Verzeichnis/en abzulegen und nur den Link in der DB zu speichern.
Ist wahrscheinlich die eleganteste und schnellste Lösung.
Außerdem müßte so nicht jedes *.pdf bei einem Aufruf dynamisch generriert werden, was den Webserver- und die DB-Performance belasten würde.
gruss conny
#5
M
Michael_B
Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Erstmal vielen Dank an alle...
PCDReitz schrieb:
PDF Datei binary safe als String einlesen, diesen mit addslashes() in die Datenbank in das BLOB Feld eintragen.
binary safe? könntest du mal eine Anweisung posten. Hab davon nämlich noch nie was gehört
Conny schrieb:
Die einfachste Lösung währe allerdings die vorhandenen *.pdf auf dem Webserver in einem/mehreren Verzeichnis/en abzulegen und nur den Link in der DB zu speichern.
Windows offers a text-mode translation flag ('t') which will transparently translate \n to \r\n when working with the file. In contrast, you can also use->b' to force binary mode, which will not translate your data. To use these flags, specify either->b' or->t' as the last character of the mode parameter.
Ähhh jetzt bin ich total verwirrt... Soll ich die Dateien jetzt im->t'- oder im->b'-Mode öffnen bzw. auslesen? Wir arbeiten definitiv mit IIS, also einem Windows-Server. Daher sollte ich dann hier wohl etwas besser aufpassen... Denke aber, dass der->b'-Mode hier angebracht ist, weil es ja ein PDF ist... ???
Summa summarum würde ich nun folgendermaßen vorgehen:
Code:
$pdf = fopen(datei.pdf, rb);
$pdf_data = fread($pdf, filesize(datei.pdf));
$pdf_res = mysql_query(INSERT INTO tabelle SET [...], pdf='.addslashes($pdf_data).');
und beim Anzeigen der PDF aus der DB heraus
Code:
<? php
$pdf_res = mysql_query(SELECT pdf FROM tabelle WHERE [...]);
$pdf_tmp = mysql_fetch_array($pdf_res);
$pdf_data = $pdf_tmp[pdf];
$header.= Content-Type: application/pdf\r\n;
Header($header);
echo $pdf_data;
exit;
?>
Kann das bisher leider nicht ausprobieren, da ich nicht auf der Arbeit bin, werde es aber gleich morgen mal versuchen... Könnt ihr denn schon irgendwelche Fehler oder schlechte Programmierung erkennen? Gibts noch wissenswerte Tipps dazu?
Vielen vielen vielen Dank schonmal für eure Hilfe *verbeug*
M.
#9
M
Michael_B
Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Super... Hat alles funktioniert... Vielen Dank !!!!!!
M.
Thema:
PDFs in der MySQL-DB ablegen und aus dieser wieder anzeigen