Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Pdf aus Datenbank anzeigen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
workershop
PostRank 8
PostRank 8
Beiträge: 697
Registriert: 19.11.2004, 19:08
Wohnort: Leipzig

Beitrag von workershop » 21.07.2009, 22:01

Hi,

ich habe ein Problem. Ich muss auf einer Seite PDF Dateien aus einer MySql Datenbank auslesen und auf einer Seite anzeigen, so das User diese Pdfs runterladen können.

Id - Beschreibung - anzeige pdf Symbol zum downloaden
Id - Beschreibung - anzeige pdf Symbol zum downloaden
Id - Beschreibung - anzeige pdf Symbol zum downloaden
Id - Beschreibung - anzeige pdf Symbol zum downloaden

usw.

Ich weis, die pdf sollte man besser in einem Ordner speichern, aber es muss aus der Datenbank sein. Es sind nicht viele, jeden Monat wird nur 1 kleines pdf in die Datenbank geladen.
Es muss auch keine große Sicherheit bestehen, da nur der Besitzer zugang zum Formular hat.

Ich habe es so gelöst:
Formular
<form enctype=multipart/form-data action=pdfstore.php method=post>
<input type=hidden name=MAX_FILE_SIZE value=1000000>
<input type=hidden name=completed value=1>
Please choose a .pdf to upload: <input type=file name=imagefile><br>
Please enter the title of that document: <input name=whatsit><br>
then: <input type=submit></form>

Script zum schreiben in die DB:
// Create table if it doesn't exist

$q = <<<CREATE
create table pdf (
pid int primary key not null auto_increment,
title text,
imgdata longblob)
CREATE;
@mysql_query($q);

// Store the .pdf

if ($errmsg == "") {
if ($_REQUEST[completed] == 1) {
move_uploaded_file($_FILES['imagefile']['tmp_name'],"latest.img");
$instr = fopen("latest.img","rb");
$image = mysql_real_escape_string(fread($instr,filesize("latest.img")));
if (strlen($instr) < 1000000) {
mysql_query ("insert into pdf (title, imgdata) values (\"".
$_REQUEST[whatsit].
"\", \"".
$image.
"\")");
$errmsg = "Done";
} else {
$errmsg = "Too large!";
}
} else {
$errmsg = "Form not completed";
}}
?>

So weit so gut. Die Daten werden geschrieben. Jetzt habe ich aber mit folgenden Script das Problem, das die ID und die Beschreibung angezeigt werden, aber ich bekomme es nicht hin das die pdf datei als Symbol zum downloaden erscheint, sondern es wird nur der Inhalt der pdf als irgendwelcher Quellcode angezeigt. Zur Zeit probiere ich es so:

<?php
require_once ('konfiguration.php');
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

// Nutzen von Datenbank (Name ist hinterlegt in Konstante MYSQL_DATENBANK
$db_sel = mysql_select_db( MYSQL_DATENBANK )
or die("Auswahl der Datenbank fehlgeschlagen");

$sql = "
SELECT * FROM pdf
";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo '<table border="1">';
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $zeile['pid'] . "</td>";
echo "<td>". $zeile['title'] . "</td>";
echo "<td>". $zeile['imgdata'] . "</td>";

echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_erg );
?>

Was kann ich da machen, damit es funktioniert. Danke