2016-06-20 37 views
5

próbuje otworzyć plik PDF z kroplą skryptu php do winy z powodu błędu:Imagick Nie otwierać pliki pdf z „Nie można odczytać pliku” wyjątek

Uncaught ImagickException: Failed to read the file in ... 

biegnę OS X, piwny, PHP 7.0 php70-Imagick --HEAD, ImageMagick --with-Ghostscript, GhostScriptowi

test linii poleceń działa prawidłowo:

convert 1.pdf 1.jpg 

pozwolenie Plik jest w porządku. Wypróbuj oba, URL i plik lokalny z funkcją realpath, więc ścieżka do plików jest również w porządku. Skrypt działa dobrze, jeśli otwarty jpeg.

phpinfo() -> ImageMagick supported formats: EPDF, PDF, PDFA, etc. 

AKTUALIZACJA: rozwiązany. Rozwiązanie poniżej.

+0

A gdzie jest ten skrypt PHP? Pokażesz nam? –

+0

Mam nadzieję, że to pomoże: $ im = new Imagick (realpath ('1.pdf')); – oleg

+0

pokazuje wyjście 'var_dump (realpath ('1.pdf'));' proszę. – Danack

Odpowiedz

9

Ten problem dotyczy ścieżki do ghostscript. Jest zlokalizowane w "/ usr/local/bin", ale ta ścieżka nie jest dostępna dla Apache. (Phpinfo -> Apache Środowisko -> path)

Rozwiązanie jest podlinkowujemy plik do innej ścieżce:

sudo ln -s /usr/local/bin/gs /usr/bin/gs 

OS X El Capitan Uwaga!/usr/bin/w OS X 10.11+ jest chroniony. Trzeba śledzić to kroki:

1. Reboot to Recovery Mode. Reboot and hold "Cmd + R" after start sound. 
2. In Recovery Mode go to Utilities -> Terminal. 
3. Run: csrutil disable 
4. Reboot in Normal Mode. 
5. Do the "sudo ln -s /usr/local/bin/gs /usr/bin/gs" in terminal. 
6. Do the 1 and 2 step. In terminal enable back csrutil by run: csrutil enable