не удалось открыть поток: в доступе отказано

0

Я разрабатываю веб-сайт с php и mysql и dompdf, в одной из моих форм у меня есть кнопка, кнопка должна генерировать. pdf а затем отправить его по электронной почте. (на моем локальном хосте он может генерировать pdf файл, но не отправлять его по электронной почте. На моем веб-сервере я не могу создать pdf файл, но электронная почта отсылается...)

Сообщение, которое я вижу, это:

Warning: file_put_contents(C:/Inetpub/vhosts/.../dompdf/lib/fonts/log.htm) [function.file-put-contents]: failed to open stream: Permission denied in C:\Inetpub\vhosts\...\dompdf\include\dompdf.cls.php on line 864 
//the mistake in in the 'dompdf' class

Warning: file_put_contents(pdf/pdfgenerados/cotizacion.pdf) [function.file-put-contents]: failed to open stream: Permission denied in C:\Inetpub\vhosts\...\list.php on line 116

Это мой код:

$codigoHTML=utf8_decode($codigoHTML);
$dompdf=new DOMPDF();
$dompdf->load_html($codigoHTML);
ini_set("memory_limit","128M");
$dompdf->render();
$pdf = $dompdf->output();

file_put_contents("pdf/pdfgenerados/cotizacionnueva.pdf", $pdf);



echo "Cotización generada";


//<<-------------- Send by email------------>>>

$fileat = "pdf/pdfgenerados/cotizacionnueva.pdf";
$fileat_type="pdf";
$fileatname= "Cotización.pdf";

$emailfrom="[email protected]";
$emailsubject="Cotización";
$emailmessage="------------ Here you have the pdf file... have a nice day";
$emailto="[email protected]";//
$headers = "From: $emailfrom";

$file = fopen($fileat,'rb');   
$data = fread($file,filesize($fileat));   
fclose($file); 

$semi_rand = md5(time());   
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";   


$data = chunk_split(base64_encode($data));   
$data . "nn --{$mime_boundary}--n";   

$ok = @mail($emailto, $emailsubject, $emailmessage, $headers);   

  if($ok) {   
  echo " <br/><font face=verdana size=2>The file was successfully sent!</font>";   
  } else {   
  die("Sorry but the email could not be sent. Please go back and try again!");   
  } 

Я получаю электронное письмо. но я не получаю pdf. файл

Что я мог сделать???

Теги:
email
pdf
dompdf

2 ответа

1

Это происходит потому, что mPDF пытается записать временный файл в папку TTFONTDATA

Вы можете решить это, предоставив разрешение на запись в папку TTFONTDATA 0777 или изменив путь _MPDF_TTFONTDATAPATH к каталогу temp Linux, добавив следующую строку перед созданием экземпляра mPDF

define ('_ MPDF_TTFONTDATAPATH', sys_get_temp_dir(). "/");

0

вы, вероятно, не имеете прав доступа в папке

pdf/pdfgenerados/

Дайте доступ для чтения/записи к этой папке, а также файл cotizacionnueva.pdf, если он уже существует

Ещё вопросы

Сообщество Overcoder
Наверх
Меню