レンタルサーバ(lolipop)でディレクトリに置いてあるPDFファイルを画像として表示したいと思ってますが、何故PHP初心者の為、ネットで探してみましたが、エラーになりなかなか上手くいきません。
おわかりになる方、宜しくお願い致します。
あるディレクトリに複数のPDFファイルがあります(ページ数はすべて1ページのみ)
そのPDFを画像としてブラウザに並べて表示して、クリックすると実際のPDFが表示されるしくみを作りたいです。
解り難い表現でしたら、申し訳ありません。
お解かりになる方、宜しくお願い致します。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
>Fatal error: Uncaught exception 'ImagickException' with message 'Postscript delegate failed `0011.pdf': No such file or directory'
との事なので、"GhostScript"でうまく処理できていないという事だと思います。
一度プロバイダーに確認されるのが良いのではと思います。
No.6
- 回答日時:
この回答への補足
有難うございます。
リンクも参照してみました。
結果
Array ( [0] => Version: ImageMagick 6.4.3 2011-07-13 Q16 http://www.imagemagick.org [1] => Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC [2] => )
使用サーバーのバージョンは6.4.3ということがわかりました。
いろいろ有難うございます。
もう少し調べてみようと思います
No.5
- 回答日時:
$im = new imagick($file."[0]"); <<これは試してもらえましたか?
エラーメッセージ見ているとimagicの引数は配列みたいですね。
上記を、下記に変えたらどうなりますか?
$im = new Imagick(); // 引数無し
$im->readImage($file."[0]"); // 追加
この回答への補足
ありがとうございます。変更してみました。
<?php
// 読み込む PDF をフルパスで指定
$file = '0011.pdf';
// サムネイルを作成するページを指定
$page = 1;
// 実際の指定では、1ページが0になるので、調整
$page = $page - 1;
$im = new Imagick(); // 引数無し
$im->readImage($file."[0]"); // 追加
// PNG 形式に変換
$im->setImageFormat("png");
// 長辺が 300 ピクセルになるようにリサイズ
$im->thumbnailImage(300, 300, true);
// 表示
header("Content-Type: image/png");
echo $im;
?>
が、エラーになります
ERROR: /undefined in /BXlevel Operand stack: 1 --dict:6/6(ro)(G)-- リ皋_ロテレェ+~l霄:碩E鰈pQ Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push --nostringval-- %loop_continue --nostringval-- Dictionary stack: --dict:1127/1686(ro)(G)-- --dict:0/20(G)-- --dict:107/200(L)-- --dict:107/200(L)-- --dict:104/127(ro)(G)-- --dict:241/347(ro)(G)-- --dict:18/24(L)-- Current allocation mode is local
Fatal error: Uncaught exception 'ImagickException' with message 'Postscript delegate failed `0011.pdf': No such file or directory' in /xxx/xxx/0/xxx/web/pdf/pdf.php:23 Stack trace: #0 /xxx/xxx/0/xxx/web/pdf/pdf.php(23): Imagick->readimage('0011.pdf[0]') #1 {main} thrown in /xxx/xxx/0/xxx/web/pdf/pdf.php on line 23
いろいろ申し訳ありません
No.4
- 回答日時:
先ほど、フルパスはダメだと解っているので、
$file = '/xxx/xxx/0/xxx/web/pdf/0011.pdf';
をファイル名だけに
$file = '0011.pdf';
$im = new imagick("$file[$page]");
を
$im = new imagick($file."[0]");
でどうでしょうか?
この回答への補足
度々有難うございます
フルパスは解除し、下記にて調整しました
<?php
// 読み込む PDF をフルパスで指定
$file = '0011.pdf';
// サムネイルを作成するページを指定
$page = 1;
// 実際の指定では、1ページが0になるので、調整
$page = $page - 1;
$im = new imagick("$file[0]");
// PNG 形式に変換
$im->setImageFormat("png");
// 長辺が 300 ピクセルになるようにリサイズ
$im->thumbnailImage(300, 300, true);
// 表示
header("Content-Type: image/png");
echo $im;
?>
表示は下記です
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open image `/xxx/xxx/0/xxx/web/pdf/0': No such file or directory' in /xxx/xxx/0/xxx/web/pdf/pdf.php:22 Stack trace: #0 /xxx/xxx/0/xxx/web/pdf/pdf.php(22): Imagick->__construct('0') #1 {main} thrown in /xxx/xxx/0/xxx/web/pdf/pdf.php on line 22
ファイルが見つからないというエラーでしょうか。
色々と恐れ入ります。
No.3
- 回答日時:
もしかするとこの部分が、
$im = new imagick($file[$page]);
$im = new imagick("$file[$page]");
ではありませんか?
この回答への補足
ありがとうございます。
いろいろ試してはいますが、エラーが続いてます。。。
現状、
<?php
// 読み込む PDF をフルパスで指定
$file = '/xxx/xxx/0/xxx/web/pdf/0011.pdf';
// サムネイルを作成するページを指定
$page = 1;
// 実際の指定では、1ページが0になるので、調整
$page = $page - 1;
$im = new imagick("$file[$page]");
// PNG 形式に変換
$im->setImageFormat("png");
// 長辺が 300 ピクセルになるようにリサイズ
$im->thumbnailImage(300, 300, true);
// 表示
header("Content-Type: image/png");
echo $im;
?>
にて試していますが、
Fatal error: Uncaught exception 'ImagickException' with message 'Safe mode restricts user to read image: /' in /xxx/xxx/0/xxx/web/pdf/pdf.php:22 Stack trace: #0 /xxx/xxx/0/xxx/web/pdf/pdf.php(22): Imagick->__construct('/') #1 {main} thrown in /xxx/xxx/0/xxx/web/pdf/pdf.php on line 22
となります。
ディレクトリのパーミッションは755です。777でも試しましたが、エラーになります。
パーミッションは755で問題ないのでしょうか。
何かと恐れ入ります。お時間あれば、宜しくお願いいたします
No.2
- 回答日時:
>Fatal error: Uncaught exception 'ImagickException' with message 'Safe mode restricts user to read image: /' in /xxx/xxx/0/xxx/web/pdf/pdf.php:27 Stack trace: #0 /xxx/xxx/0/xxx/web/pdf/pdf.php(27): Imagick->__construct('/') #1 {main} thrown in /xxx/xxx/0/xxx/web/pdf/pdf.php on line 27
イメージファイル名を、"/"(スラッシュ)と認識して、ファイルで無いと怒られています。
パス付のファイルの指定に問題がありそうです。
ちょっと詳しく調べている時間が無いのですが、
phpのスクリプトがphpと同じフォルダーにあるので、
$file = '/xxx/xxxx/0/xxx/web/pdf/0011.pdf';
を
$file = '0011.pdf';
に変更すればなんとかなりませんか?
この回答への補足
有難うございます。
変更してみましたが、下記のエラーになります
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open image `/xxx/xxx/0/xxx/web/pdf/0': No such file or directory' in /xxx/xxx/0/xxx/web/pdf/pdf.php:22 Stack trace: #0 /xxx/xxx/0/xxx/web/pdf/pdf.php(22): Imagick->__construct('0') #1 {main} thrown in /xxx/xxx/0/xxx/web/pdf/pdf.php on line 22
No.1
- 回答日時:
ImageMagickを使っているのでしょうか?
具体的にどういう設定で、どういうロジックでエラーになるのかを
説明頂かないと、アドバイスするのは難しいと思います。
この回答への補足
ありがとうございます。
インターネットで調べたところ、imagickを使えばPDF→画像に処理できるところは理解できました。
ンタルサーバ上(lolipop)でimagickを使えることもわかったのですが、ネットで見つけたPHPプログラムにて下記のように書いてもエラーになります。
<?php
// 読み込む PDF をフルパスで指定
$file = '/xxx/xxxx/0/xxx/web/pdf/0011.pdf';
// サムネイルを作成するページを指定
$page = 1;
// 実際の指定では、1ページが0になるので、調整
$page = $page - 1;
$im = new imagick($file[$page]);
// PNG 形式に変換
$im->setImageFormat("png");
// 長辺が 300 ピクセルになるようにリサイズ
$im->thumbnailImage(300, 300, true);
// 表示
header("Content-Type: image/png");
echo $im;
?>
エラーは:
Fatal error: Uncaught exception 'ImagickException' with message 'Safe mode restricts user to read image: /' in /xxx/xxx/0/xxx/web/pdf/pdf.php:27 Stack trace: #0 /xxx/xxx/0/xxx/web/pdf/pdf.php(27): Imagick->__construct('/') #1 {main} thrown in /xxx/xxx/0/xxx/web/pdf/pdf.php on line 27
色々調べてはいるんですが、PHP初心者の為、何がいけないのかのイメージがわきません。。。
宜しくお願い致します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- その他(プログラミング・Web制作) 【GAS】Gmail本文をブラウザ表示された状態でPDFにしたいです 1 2022/12/12 09:54
- PowerPoint(パワーポイント) 音声マークを一括非表示にしたい。 3 2022/04/09 21:30
- PDF AutoCAD図面をPDF fileに変換した際、画像情報やブロック名はわかるのでしょうか。 1 2022/06/03 09:42
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- WordPress(ワードプレス) WordPressのサイトにPDFをアップロードした際にGoogleなどの検索結果に出ないでほしい 1 2022/08/03 10:44
- PDF いきなりPDFでPDFファイルを開くと表示が崩れる(アドビでは問題なし) 1 2022/04/14 08:42
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpで画像がどうしても文字化け...
-
透過PNGが透過されない!!
-
imageフォルダに、画像をリサイ...
-
ファイルアップロードのダイア...
-
Illustratorで文字と画像を流し...
-
BLOBデーターの画像の表示方法...
-
アップロード画像数でCSSを分け...
-
phpで画像を保存するときにリサ...
-
phpMyAdminに画像を保存できない
-
libpngでpng操作がうまくいかない
-
PHPで吐き出した画像にリンクを...
-
VBSの「MsgBox」について
-
最も速い画像合成処理を教えて...
-
phpについて
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
phpとaspの違いについて
-
form actionで二つ送信先を指定...
-
PHP8を使うと、大量のWarningが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
PythonのTkinter詳しい方へ。画...
-
VBAでJPGサイズ変更
-
C# Excelファイルへの画像挿入。
-
ListViewコントロールでサムネ...
-
PHPで吐き出した画像にリンクを...
-
php,mysqlにて画像パス保存/表...
-
PHP+PostgreSQLを使ってPDFファ...
-
スマートフォンから画像のアッ...
-
画像にテキストを埋め込むジェ...
-
実行ファイル(exe)に画像ファ...
-
ビットマップ画像を読み込むプ...
-
改行コードのカウント
-
Ajaxで画像表示
-
画像アップロードのファイル名...
おすすめ情報