2016-06-20 4 views
5

Essayer d'ouvrir le fichier PDF à partir de drop script php en défaut avec l'erreur:Imagick ne pas ouvrir les fichiers PDF avec "Impossible de lire le fichier" exception

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

Je suis sous OS X, Brew, PHP 7.0, php70-imagick --HEAD, ImageMagick --with-Ghostscript, Ghostscript

test de ligne de commande fonctionne très bien:

convert 1.pdf 1.jpg 

File permission est ok. Essayez les deux, une URL et un fichier local avec la fonction realpath, ainsi filepath est ok aussi. Le script fonctionne bien si jpeg ouvert.

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

MISE À JOUR: Résolue. Solution ci-dessous.

+0

Et où est ce script PHP? Souhaitez-vous nous montrer? –

+0

Espérons que ça vous aide: $ im = new Imagick (realpath ('1.pdf')); – oleg

+0

montre la sortie de 'var_dump (realpath ('1.pdf')); – Danack

Répondre

9

Ce problème était avec le chemin de ghostscript. Il est situé dans "/ usr/local/bin", mais ce chemin n'est pas disponible pour Apache. (Phpinfo -> Environnement Apache -> PATH)

La solution est de créer un lien symbolique fichier vers un autre chemin:

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

OS X El Capitan Remarque!/usr/bin/dans OS X 10.11+ est protégé. Vous devez suivre les étapes suivantes:

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