2016-07-08 6 views
0

Ich erzeuge Rechnungen mit fpdf-Bibliothek, die Daten aus der Datenbank abruft, jetzt, wenn die PDF generiert wird, möchte ich die Datei in einem Ordner speichern und den Dateinamen mit Datum in der Datenbank hinzufügen damit ich alle zuvor erzeugten Rechnungen in einer Tabelle abrufen kann. Bitte helfen Sie mir hier.Speichern von fpdf-Ausgabe im Server und Hinzufügen von Dateinamen in der Datenbank

+1

Ihren Code anzeigen? – Dave

+1

Haben Sie die Tabelle und den Ordner erstellt? Hast du es geschafft, die Datei zu speichern? Ich bin nicht in der Lage zu helfen, ohne zu wissen, Ihr konkretes Problem – Philipp

+0

@Philipp bei weitem kann ich PDF generieren, aber ich möchte das generierte PDF in einem Ordner speichern und den Dateinamen in der Datenbank hinzufügen, so dass ich den Dateinamen aufrufen kann von der Datenbank, um das pdf zu erhalten. So etwas wie Bild hochladen.Wir laden Bild in der Datenbank verschieben hochgeladene Datei in einen Ordner und fügen Blob Daten in der Datenbank des Bildes. –

Antwort

0

Seien Sie sicher, dass Sie in das Verzeichnis schreiben können.

$filename="/Mydirectory/bill01.pdf"; 

Speichern Sie das PDF.

$pdf->Output($filename,'F'); 

Aktualisieren Sie die SQL-Tabellen

$query=" UPDATE `shopdb`.`bills` SET `bill_doc_crea` = '1', `bill_pdf_doc` = '".$filename."' WHERE `bills`.`ordernummer` ='".$orderId."' ;"; 
+0

Dank Mann, aber die F-Parameter verwendet wird zwingen Laden Sie es an den angegebenen Speicherort. Gibt es eine Möglichkeit, so dass ich die PDF-Datei inline im Browser öffnen und herunterladen kann, während Sie die Datei in der Datenbank hinzufügen. –

0

Ausgang ([string dest [, string name [, boolean isUTF8]]])

Destination, wo das Dokument zu senden. Dies kann einer der folgenden Werte sein:

I: send the file inline to the browser. The PDF viewer is used if available. 
D: send to the browser and force a file download with the name given by name. 
F: save to a local file with the name given by name (may include a path). 
S: return the document as a string. 

Normalerweise sollte der Parameter F nur auf Festplatte gespeichert werden.
Es sieht aus, dass fpdf den Download erzwingen. In diesem Fall sollte die Verwendung von tcpdf https://tcpdf.org/ nützlich sein. Ich benutze es und es funktioniert gut. Auf Platte speichern und in DB einfügen

+0

danke ein tonnenkamerad, ich folgte deinem Vorschlag mit einigen mods und beende die Aufgabe. Sehen Sie unten einmal und sagen Sie, ob es in Ordnung ist. $ pdf = new SimpleTable(); \t $ a = md5 (uniqid()); $ b = substr ($ a, 5, -20); $ c = "PO-16-17 -". $ B; $ pdf-> AddPage(); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> generateTable (5); $ path = "pdfs/$ c.pdf"; $ filename = "$ c.pdf"; $ content = $ pdf -> Ausgabe ($ path, "F"); $ sql = "Einfügen in PDFs (Datei) VALUES ('". $ Filename. "')"; if (mysqli_query ($ db, $ sql)) { \t # -Code ... \t echo ""; } sonst { \t echo "nein"; } –