PHP, обслуживающий pdf файлы, сначала работает, но со временем начинает отказывать? - PullRequest
2 голосов
/ 13 мая 2011

Мы с моим другом раздаем pdf-файлы в нашей группе через php по ссылке с общего хоста. По сути, php-файл, выполняющий обслуживание, просто устанавливает тип и имя документа, а затем выполняет чтение файла PDF-файла, ничего сложного.

В любом случае, он работал отлично в течение длительного времени, но со временем это похоже на распад файлов или что-то в этом роде. По одному, они начинают иметь следующую ошибку Adobe Reader: «Произошла ошибка при открытии этого документа. Файл поврежден и не может быть восстановлен»

Это верно для любого компьютера, загружающего файл (даже при первой загрузке на этот компьютер, на стороне клиента нет проблем с кэшем). Исходный файл на сервере все еще находится в отличном состоянии, открывается очень хорошо, его можно скопировать через FTP и открыть на том же компьютере, на котором возникли проблемы с загруженной версией.

Так в чем же дело? Возможно ли, что хост кеширует поврежденную версию pdf и не выпускает ее? Есть идеи, что может вызвать это?

Спасибо, Джеймс

Ответы [ 3 ]

3 голосов
/ 13 мая 2011

Просто скачайте поврежденный PDF, откройте его в текстовом редакторе, таком как notepad ++, и убедитесь, что к файлу, например html или пробелам, ничего не добавлено и не добавлено.

Оно должно начинаться с чего-то подобного

%PDF-1.4
%âãÏÓ
1 0 obj
<</DecodeParms

И заканчивается %%EOF

<</Info 6 0 R/Root 5 0 R/Size 7/ID [<2dc4e4e34299742156136c9f3e72d3db><1b914aa93d42277e939b341233d3e66b>]>>
startxref
3540
%%EOF

Без пробелов, символы stange после %%EOF.Надеюсь, это поможет!

2 голосов
/ 13 мая 2011

Adobe PDF Reader (как плагин для браузера) имеет подозрительный способ кэширования файлов с одного и того же URL-адреса, даже если содержимое изменилось.

Попробуйте добавить в URL фиктивную временную метку или случайное число, чтобы Reader был вынужден снова загрузить файл.

Пример:

 example.com/invoiceDownload.php?rand=123123123123
0 голосов
/ 26 августа 2011

Я столкнулся с той же проблемой - некоторые файлы открывались нормально, у некоторых были графические сбои, а некоторые вообще не открывались.

В верхней части файла PHP, который я использовал для обслуживания файлов, я включил основной файл конфигурации моего сайта. Когда я удалил его и включил только то, что было необходимо (путь и информация о базе данных), файлы PDF начали работать нормально.

Короче говоря, убедитесь, что любой ненужный код в файле PHP удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...