[php] PDF mailen

Pagina: 1
Acties:
  • 292 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik maak van input uit een form een PDF document aan. Dit wordt nu gewoon open gemaakt in een PDF viewer. De bedoeling is dat het ook gemailt kan worden.

Nu is dat niet zo'n probleem, je slaat het op en mailt het.

Waar ik meer over zit te denken is hoe je dit slim aanpakt, er voor zorgt dat de bestanden ook opgeruimd worden etc.. een server die na een maand volstaat is niet echt mijn idee van een geslaagde opzet :)
  • Na het mailen de bestanden direct weggooien?
  • Kan je ze opslaan onder een temp naam, en in de email hernoemen zodat ze een net naampje hebben...
Iemand die dit al eens heeft gedaan?

Acties:
  • 0 Henk 'm!

  • DaRKie
  • Registratie: December 2001
  • Laatst online: 16-09 16:18
Ik doe dit:
PHP:
1
2
3
4
5
6
7
8
9
if ($d = @opendir($dir)) {
    while (($file = readdir($d)) != false) {
        $ftime = filemtime($dir.'/'.$file);
            if (time()-$ftime > 600){
                unlink($dir.'/'.$file);
            }
        }  
    closedir($d);
}


Dit gaat alle bestanden controleren op hun leeftijd, als ze ouder zijn dan 600 seconden, verwijder ik ze. Is misschien ook een mogelijkheid. Je kan die code ook gebruiken natuurlijk om een specifiek bestand te verwijderen. (unlink())

Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Dat is inderdaad wel een goeie optie. Dat geeft je net wat meer speling dan het direct weggooien van het bestand.

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

Er bestaan drie oplossingsrichtingen voor dit probleem volgens mij:

Een filestructuur bedenken met subfolders, waarbij er voldoende wordt verdeeld tussen de folders (een aantal database keys bijv. als padnamen). Met een scheduled php script (crontab) 's nachts zonder dat de gebruikers er last van hebben de benodigde schoonmaak doen. Met grote volume mails is real-time opschonen niet echt een optie naar mijn mening.

De PDF bestanden in een database opslaan als BLOB velden. Deze zijn heel makkelijke met een SQL statement te verwijderen. Alleen aan te raden bij lage volumes en niet al te grote bestanden

De PDF in-memory aanmaken, NIET opslaan op disk en encoded als attachment in de mail versturen. Dit vereist wel wat handmatige base64 encoding van je PDF filestream, maar het is goed te doen. Let op dat je hierbij niet over je interne memory limit gaat van PHP (standaard 8 mb)

P.S. Ik weet niet of het relevant is voor je, maar ik heb bij een soortgelijk probleem wel eens een issue gehad dat er teveel tijdelijke bestanden in dezelfde directory gezet werden. De schijf was niet vol, maar een directory (op linux in ons geval) kan maar iets van 10.000 bestanden bevatten. Just a tip :)

P.P.S. Als tip nog een tweetal URL's die in mijn favorites stonden:
http://www.zend.com/zend/tut/tutorial-PDFgen1.php
http://www.zend.com/zend/tut/tutorial-PDFgen2.php
Een tutorial over het maken van PDF files in PHP zonder gebruik te maken van externe libs. Misschien dat je er wat aan hebt :)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:51

Creepy

Tactical Espionage Splatterer

P.S. Ik weet niet of het relevant is voor je, maar ik heb bij een soortgelijk probleem wel eens een issue gehad dat er teveel tijdelijke bestanden in dezelfde directory gezet werden. De schijf was niet vol, maar een directory (op linux in ons geval) kan maar iets van 10.000 bestanden bevatten. Just a tip
Nah, dat is puur filesystem afhankelijk. O.a. ReiserFS en tegenwoordig ook Ext3 kunnen meer aan :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

Creepy schreef op woensdag 26 juli 2006 @ 10:56:
Nah, dat is puur filesystem afhankelijk. O.a. ReiserFS en tegenwoordig ook Ext3 kunnen meer aan :)
Ik werk hier met PHP in een enterprise omgeving en de standaard Red Hat Enterprise Linux 4.0 uitrol in mijn bedrijf bevat deze beperking. Dat technisch deze beperking opgelost kan worden twijfel ik niet aan. Het is alleen wel nuttig hiervoor te waarschuwen :Y)

Klik hier om mij een DM te sturen • 3245 WP op ZW

Pagina: 1