Я пишу программу, которая заполняет шаблон PDF (используя fpdf), а затем делает снимок экрана для предварительного просмотра пользователю.
Кажется, Imagemagick нужен существующий файл в файловой системе для захвата изображения предварительного просмотраэто означает, что мне нужно сохранить PDF в каталог.
Я следовал инструкциям (см. здесь: Невозможно сохранить файл в каталог с помощью FPDF ), чтобы изменить разрешение для папки, чтобы я мог писать вдиректории, но всякий раз, когда я запускаю свою страницу php, я получаю:
У меня 755 в качестве разрешения по умолчанию, и, поскольку я просто тестирую, и эта папка не особо критична, я пытался перейти на 777.
500 Server Error
A misconfiguration on the server caused a hiccup. Check the server logs, fix the problem, then try again.
URL: *Full URL*
Dangerously writable: [*File path on server*]
FIXED
Я проверил папку после этой ошибки, и разрешение вернулось к 755, и текстового файла error_log не существует, поэтому я не уверен, как отладить это, так как Google показывает, что ошибка сервера 500 - это общая ошибкавсе.
Хостинг: bluehost.com
Вот код:
<?php
// Library imports
require_once(dirname(__FILE__)."/lib/fpdf/fpdf.php");
require_once(dirname(__FILE__)."/lib/fpdi/fpdi.php");
// End of imports
//OpenCnxn
mysql_connect(*the approrpiate stuff*) or die(mysql_error());
mysql_select_db(*the appropriate stuff*) or die(mysql_error());
//Query DB and calculate number of rows
$query = "Select ProfilePicture from Users where UserID = 1";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
$filename = "template.pdf";
$pdf = new FPDI();
$pdf->AddPage();
// import the template PFD
$pdf->setSourceFile($filename);
// select the first page
$tplIdx = $pdf->importPage(1);
// use the page we imported
$pdf->useTemplate($tplIdx);
//Image insertion
for($i=0;$i<$num_results;$i++){
$row = mysql_fetch_array($result);
$pdf->Image(htmlspecialchars(stripslashes($row['ProfilePicture'])), 13, 13, 35, 25);
}
$pdf->Output('testdocument.pdf', 'F');
Приведенный выше код работает, как и ожидалосьn разрешение на 755, и когда последняя строка изменяется для загрузки вместо сохранения файла, т.е.:
$pdf->Output(); //OR
$pdf->Output('testdocument.pdf', 'D');