Внутренний сервер Ошибка чтения файла

1

У меня есть сценарий вида, который открывает pdf файл, он выглядит следующим образом:

<?php
$this->title = 'arbeitskalender';
//ini_set('display_errors',1);
header('Content-Type:application/pdf');
header('Content-Disposition', 'attachment; fileName=arbeitskalender.pdf');
readfile('./pdfs/arbeitskalender.pdf');
?>

На моем localhost (wamp-server) он работает хорошо, и файл открывается без какой-либо ошибки, загружается в мое веб-пространство (не мой собственный сервер, только в веб-пространстве), я получаю

Внутренняя ошибка сервера

,

В чем проблема? Есть ли возможность получить более информативное сообщение об ошибке? Поскольку это не мой сервер, я не могу заглянуть в журнал сервера.

  • 0
    Не похоже, что вы в классе, но все еще используете $this . Можете ли вы подтвердить, действительно ли это внутри класса или нет?
  • 0
    Что ж, вам нужно заглянуть в журнал ошибок, чтобы увидеть, что на самом деле вызвало ошибку HTTP 500.
Теги:
zend-framework

3 ответа

2
Лучший ответ

Да, много:

  • проверьте вкладку сети в панели разработчика. В конце концов, выключите (запустите строки заголовка с //) ваши заголовки в вашем скрипте, чтобы увидеть сообщение об ошибке (для отладки)
  • проверьте лог файлы вашего фреймворка (если вы используете)
  • проверьте, может ли ваше приложение записывать записи в журнал
  • включить и отобразить ошибки (см. Отображение всех ошибок и предупреждений)
  • проверьте, может ли php читать файл (разрешения и существующий файл)
  • проверьте, только ли вы получаете внутреннюю ошибку сервера на этой странице

Глядя на ваш сценарий:

  • что это такое? Я не вижу определения класса
  • может ли PHP найти файл?
0

Я проверил все ваши предложения, я узнал еще кое-что, но не смог решить проблему. Я нашел еще один код, который не использует readfile и пока это отлично работает.

<?php
require_once 'Zend/Pdf.php';

header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename=arbeitskalender.pdf');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ini_set('zlib.output_compression','0');
echo file_get_contents("./pdfs/arbeitskalender.pdf");

?>
<html>
<body>
0

Проверьте разрешения ./pdfs/arbeitskalender.pdf. Я думаю, это не читается для пользователя apache

Ещё вопросы

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