Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie pdfa jako załącznika
Forum PHP.pl > Forum > PHP
MOniToR
Tak jak w temacie. Generuje z formularza pdfa, przy pomocy klasy ezPdf i zapisuje go na dysku, i później wysyłam go maile przy pomocy klasy eMail. Wszystko było świetne gdyby wysłany plik był prawidłowy i dał się otworzyć a tak nie jest, m.in dlatego, że ma 0 bajtów i nie wiem czemu się tak dzieje. Plik na serwerze zapisuje się ok, ale ten co dochodzi na maila nie:/ Plik pdf jest zapisywany w tym samym katalogu co php, który go zapisuje i katalog ma ustawiony CHMOD na 777.


Kawałek kodu, który to obsługuje(jeżeli potrzeba mogę zamieścić też źródło klas)

  1. <?php
  2. include ('class.ezpdf.php');
  3.  include ('mail_class.php');
  4.  
  5. $diff=array(177=>'aogonek',161=>'Aogonek',230=>'cacute',198=>'Cacute',234=>'eogonek',202=>'Eogonek',
  6. 241=>'nacute',209=>'Nacute',179=>'lslash',163=>'Lslash',182=>'sacute',166=>'Sacute',
  7. 188=>'zacute',172=>'Zacute',191=>'zdot',175=>'Zdot'); 
  8.  
  9.  srand((double) microtime()*1000000);
  10. $naz=md5(uniqid(rand()));
  11. $sciezka=''.$naz.'.pdf';
  12. $pdf =& new Cezpdf('a4');
  13. $pdf->selectFont('./fonts/tahoma.afm',array('encoding'=>'WinAnsiEncoding','differences'=>$diff));
  14.  
  15. $pdf->ezStream();
  16. $pdfcode = $pdf->ezOutput();
  17.  
  18. ////// TUTAJ JEST/BYŁA TRESC PDFA Z POLSKIMI LITERAMI //////////////
  19.  
  20. $fp=fopen($sciezka,'wb');
  21. fwrite($fp,$pdfcode);
  22. $logo = fread($fp, filesize($sciezka)); 
  23. fclose($fp);
  24. $wysylka = new eMail('2'); 
  25. $wysylka->eMailContent("Kolejny test", "Zobacz załączniki!");
  26. $wysylka->eMailAttachment("text/plain", "test1.txt", "zawartość testowa");
  27. $wysylka->eMailAttachment("application/pdf", $sciezka, $logo);
  28. $wysylka->eMailSend($_POST["mail"]);
  29. ?>


Proszę o pomoc, będę bardzo wdzięczny smile.gif
juzwa
$fp=fopen($sciezka,'wb');
fwrite($fp,$pdfcode);
$logo = fread($fp, filesize($sciezka));
fclose($fp);

moim zdaniem tu jest problem

otwierasz plik 'w' -> do zapisu
a potem dajesz fread

100% nie mam pewności ale daj echo $logo i pewnie będzie pusty tekst

może najpierw zapisz potem przeczytaj (czyli najpierw 'w', a potem 'r') albo daj falgę na zapis/odczyt 'w+'

tylko, że przy w - jest faktycznie nadpisanie pliku
Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego początku i obcina plik do zerowej długości. Jeśli plik nie istnieje to próbuje go utworzyć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.