Προβολή αρχείου PDF από MySQL

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
acerbitch
Δημοσιεύσεις: 37
Εγγραφή: 02 Φεβ 2009 11:33

Προβολή αρχείου PDF από MySQL

Δημοσίευση από acerbitch » 21 Αύγ 2012 13:11

Αγαπητά μέλη του freestuff,

αντιμετωπίσω το εξής πρόβλημα. Έχω αποθηκεύσει σε μία Βάση Δεδομένων (MySQL) αρχεία PDF και προσπαθώ να ανακτήσω τα αυτά που επιθυμώ μέσα από μία φόρμα πληκτρολογώντας το όνομα του εκάστοτε αρχείου (μαζί με την κατάληξη του).

Η φόρμα καλεί ένα αρχείο php το οποίο περιλαμβάνει τον παρακάτω κώδικα PHP:

<?php include ("header.php"); ?>
<br /><br />

<?php
include ("dbconnect.php");

$name=$_POST['name'];
$query="SELECT name, type, size, content FROM table WHERE name='$name'";
$result=mysql_query($query) or die('Error');
list($name, $type, $size, $content)=mysql_fetch_array($result);

header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
echo $content;
exit;
?>
<br /><br />

<?php include ("footer.php"); ?>

Το αποτέλεσμα που προκύπτει είναι μία σελίδα που εμφανίζεται 3 φορές το μήνυμα ότι τα headers έχουν ήδη σταλεί και από κάτω μια πληθώρα χαρακτήρων που αντιστοιχούν στο αρχείο pdf που θέλω να ανοίξω.

Μήπως υπάρχει καμία ιδέα πως διορθώνονται όλα αυτά;

Ευχαριστώ.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Προβολή αρχείου PDF από MySQL

Δημοσίευση από fafos » 21 Αύγ 2012 13:15

typoneis stoixeia prin trexoun oi headers.. prepei na mpoun prin ap'ola..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

acerbitch
Δημοσιεύσεις: 37
Εγγραφή: 02 Φεβ 2009 11:33

Προβολή αρχείου PDF από MySQL

Δημοσίευση από acerbitch » 21 Αύγ 2012 13:31

fafo ξέρω ότι θα ακουστεί αστείο, μήπως θα μπορούσες να γίνεις λίγο πιο συγκεκριμένος...;

acerbitch
Δημοσιεύσεις: 37
Εγγραφή: 02 Φεβ 2009 11:33

Προβολή αρχείου PDF από MySQL

Δημοσίευση από acerbitch » 21 Αύγ 2012 14:04

Ok fafo, όλα φτιάξανε. Ο κώδικας έγινε όπως παρακάτω:

<?php
header("Content-length: $size");
header("Content-type: application/pdf"); // άλλαξε γιατί δεν άνοιγε το αρχείο σαν PDF
header("Content-Disposition: attachment; filename=$name");

$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$name=$_POST['name'];
$query="SELECT name, type, size, content FROM $tbl_name WHERE name='$name'";
$result=mysql_query($query) or die('Error');
list($name, $type, $size, $content)=mysql_fetch_array($result);
echo $content;
exit;
?>

Μόνο κάτι ακόμα αν μπορείς να βοηθήσεις. Το όνομα του αρχείου που ανοίγει είναι το όνομα του αρχείου php που περιέχει τον κώδικα (π.χ. files) και όχι το όνομα που έχει δηλωθεί στη Βάση. Καμία ιδέα πως αυτό μπορεί να αποφευχθεί;

Ευχαριστώ!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Προβολή αρχείου PDF από MySQL

Δημοσίευση από fafos » 21 Αύγ 2012 14:33

prepei na valeis tous headers akrivos prin to "echo $content;" (h syndesh me thn vash kai to query den typonoun tipota opote den tha exeis provlhma "header allready send")
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

acerbitch
Δημοσιεύσεις: 37
Εγγραφή: 02 Φεβ 2009 11:33

Προβολή αρχείου PDF από MySQL

Δημοσίευση από acerbitch » 21 Αύγ 2012 14:37

Thanks fafo!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες