2

PHPでPDFファイルを生成するためにFPDFライブラリを使用しています。このライブラリはプレーンテキストで正常に機能しています(つまり、PDFファイルが任意のテキストに対して生成されています)がFPDF error: Missing or incorrect image file:{MY_FILE_PATH}、PDFページに画像を追加しようとするとエラーが発生します。ブラウザを介してそのファイルパスにアクセスすると、対応する画像が正常に表示されます。

私のコードは次のとおりです。

require('fpdf.php');

$ pdf = new FPDF();
$ pdf-> AddPage();
$ pdf-> SetFont('Arial'、'B'、16);
$ pdf-> Write(10、'サンプル画像');
$ image_path = MY_FILE_PATH; //この変数には実際のファイルパスが含まれています
$ pdf-> Image($ image_path、10、10、350、450);
$ pdf-> Output();

このコードはローカルホストで完全に機能し、画像でも対応するPDFファイルを生成しますが、サーバーに移動した後は機能しません。

私はこれらの可能性を次のように試しました:

  1. 画像の絶対パスと相対パスを使用します。

  2. 同じフォルダに配置されたローカルイメージで試してみました。

  3. jpg、png、gifなどのすべての画像形式もあります。

  4. 画像と対応するフォルダの権限も確認しました。

これらのケースはどれも私にとってはうまくいきません。この問題に悩まされています。誰かが私がこの問題を解決するのを手伝ってくれるでしょうか。

ありがとう!

シヴァ..。

4

3 に答える 3

5

長い苦労の末、ついに私はこの問題の理由を見つけました。これについてはすでにここで説明しました。

主にこの問題は、サーバーで有効になっていない「allow_url_fopen」設定が原因です。CURLを使用してこの問題を解決しました。私のような誰かが(解決策を見つけるために)時間の浪費を避けるのに役立つかもしれないので、私はこの問題を解決するための段階的な手順を与えています。

1.書き込み権限を持つローカルシステムに一時ファイルを作成します。

例:$ fp = @fopen($ local_file_path、'x');
    fclose($ fp);

2. CURLを使用してリモートロケーションファイルの内容を取得し、それをローカルファイルに書き込みます
これは前のステップで作成されました。

例:$ curl = new CurlWrapper($ remote_file_path);
    $ curl-> copyToFile($ local_file_path);

3.次に、このローカルファイルパスをFPDF関数(画像)に送信してから、対応する
PDFは問題なくファイルに対して生成されます。

これはこの問題を解決するための1つの方法だと思います。誰かが他の方法を知っている場合は、ここに投稿して、この質問が誰かに役立つようにすることができます。

于 2010-08-26T18:36:05.873 に答える
2

追加するだけです:

allow_url_fopen = ON

php.ini(存在しない場合は新規作成)で問題を解決します。

http://www.solo-technology.com/blog/2010/04/07/quick-fix-for-url-file-access-is-disabled-issues/

于 2012-10-17T11:57:08.217 に答える
0

誰でもこのコードを使って解決できます。それはうまくいくかもしれません。場合によっては異なる場合があるためです。私の場合、同じ問題が発生していましたが、使用後です。問題を修正しました。

$pdf->Image($image_path, 10, 10, 350, 450 ,''); 

$ pdf-> Image()関数の6パラメータに空の文字列を指定するか、(PNGまたはJPG)のようなファイル拡張子を指定できます。私の場合、 空の文字列 ''が機能していました。画像をトリミングしていたので、画像がうまくいかなかったからです。その後、問題が修正され、さまざまな画像でテストしました。

于 2021-03-12T20:49:15.073 に答える