Avatar billede jjdk Nybegynder
01. januar 2006 - 17:44 Der er 12 kommentarer og
1 løsning

FPDF og gemme i Mysql

Jeg er ved at lave et lille faktura-system, hvor fakturaen laves som en PDF-fil. Til dette bruger jeg FPDF (www.fpdf.org).
Er det muligt at gemme PDF-filen, så den senere kan vedhæftes en email, fx. gemme den i en Mysql-database? Hvis det er muligt at gemme, vil jeg være glad for lidt kode-eksempel.
Alternative forslag modtages også gerne, men jeg er opmærksom på, at jeg selvfølgelig bare kan lave et link i emailen.
Avatar billede jaw Nybegynder
01. januar 2006 - 23:04 #1
Ok, det var måske nemmere end jeg troede, du kan prøve:

$str = $pdf->Output('doc.pdf', 's');
mysql_query("INSERT INTO tabel (feltnavn) VALUES ('".$str."')");
Avatar billede jjdk Nybegynder
01. januar 2006 - 23:39 #2
Det er jeg spændt på at prøve.
Jeg laver straks et nyt felt i tabellen. Hvilken felt type skal jeg anvende? (jeg har ikke prøvet at oprette tabeller, der kan gemme filer, så jeg er lidt dum til det her).
Avatar billede jaw Nybegynder
01. januar 2006 - 23:40 #3
Hm, som minimum tror jeg du skal have fat i TEXT. Den kan vist indeholde op til 4 mb hvis jeg ikke husker forkert...
Avatar billede jjdk Nybegynder
02. januar 2006 - 00:00 #4
Jeg har prøvet at fortsætte med php-filen, som du tidligere har hjulpet med. Det lader til at virke. Der ligger i hvert fald noget i tabellen nu.
Kan du også give et bud på, hvordan jeg trækker det ud af tabellen, så den fremstår som en PDF-fil, eksempelvis som en vedhæftet fil i en email.
Avatar billede jaw Nybegynder
02. januar 2006 - 00:18 #5
Lave skrivning til en fil kan jeg klare:

$query("SELECT feltnavn FROM tabel");
$row = mysql_fetch_assoc($query);
$handle = fopen('filnavn.pdf', 'w');
fwrite($handle, $row['feltnavn']);

Det med at attache filen er så nok straks lidt sværere. Jeg mener ikke at der bare lige findes en måde at gøre det på, så tror du skal have fat i en klasse, som f.eks. http://phpmailer.sourceforge.net/ .
Avatar billede jjdk Nybegynder
02. januar 2006 - 00:29 #6
Jeg har prøvet med denne kode, men får fejl. Linket er www.vardeborg.dk/test/kontrakt/sql_hent_fil.php. Feltnavnet er: "pdf_fil"
<?php
mysql_connect("localhost","vardeborg","xxxxx");
mysql_select_db("vardeborgdk");
$query("SELECT pdf_fil FROM kalender_kontrakt");
$row = mysql_fetch_assoc($query);
$handle = fopen('filnavn.pdf', 'w');
fwrite($handle, $row['pdf_fil']);
?>
Avatar billede jaw Nybegynder
03. januar 2006 - 13:10 #7
Det var her du mener jeg skulle kigge, ikke?

Men:
$query("SELECT pdf_fil FROM kalender_kontrakt");
skal være:
$query = mysql_query("SELECT pdf_fil FROM kalender_kontrakt");
Avatar billede jjdk Nybegynder
03. januar 2006 - 13:17 #8
Jo - det må du undskylde.
Jeg har rettet som skrevet, men nu sker der ingenting, når jeg indlæser siden:
Koden ser sådan her ud:
<?php
mysql_connect("localhost","vardeborg","xxxx");
mysql_select_db("vardeborgdk");
$query = mysql_query("SELECT pdf_fil FROM kalender_kontrakt");
$row = mysql_fetch_assoc($query);
$handle = fopen('filnavn.pdf', 'w');
fwrite($handle, $row['pdf_fil']);
?>
Avatar billede jaw Nybegynder
03. januar 2006 - 13:22 #9
Det er jo fordi den har oprettet din fil - dog uden indhold: http://www.vardeborg.dk/test/kontrakt/filnavn.pdf
Avatar billede jjdk Nybegynder
03. januar 2006 - 13:32 #10
Ok - den er altså gemt på serveren.
Jeg havde jo kun 1 post i tabellen lige nu, og jeg kan se, at når jeg vil gemme i tabellen jf. din vejledning længere oppe, sker det i en ny post.
Når jeg så skal hente filen fra tabellen, henter den nok fra den første post.
Avatar billede jjdk Nybegynder
03. januar 2006 - 17:07 #11
Hej Jaw.
Sender du lige et svar, så jeg kan give point.
Avatar billede jaw Nybegynder
04. januar 2006 - 02:04 #12
Ja, hvis du synes du har opnået hvad du ville :) ?
Avatar billede jjdk Nybegynder
04. januar 2006 - 12:09 #13
Jeg har det ikke helt til at virke, da PDF-filen er tom. Det lader til, at når filen gemmes i MySql, sker det i en ny post. Jeg har så i MySql prøvet at kopiere indholdet fra den ene post til den anden. Derefter genererer jeg PDF-filen igen, men får fejl, når den indlæses.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester