0

mysql データベースのデータを PDF レポートに入力しようとしています。ローカル マシンでは正常に動作しますが、www.000webhost.com にアップロードすると、pdf ドキュメントが生成されません。

レポートの印刷をクリックするたびに、ドキュメントが一時ファイルをフォルダーに書き込むことを知っています.ホスティングプロバイダーで機能しない理由と、この問題を修正する方法を教えてください. 私はそれがセキュリティの問題であるという印象を受けています。

一時ファイルを作成する必要がありますか。$fdf 変数を使用して一時ファイルの代わりにレポートを作成できなかったのはなぜですか?

$fdf_fn= tempnam( '.', 'fdf' );
$fp= fopen( $fdf_fn, 'w' );
if( $fp ) {
    fwrite( $fp, $fdf );
    fclose( $fp );

//attachment for view
header(   'Content-type: application/pdf' );
header(   'Content-disposition: inline; filename=TEST.pdf');

passthru(   "pdftk ./../../reports/TEST.pdf fill_form ". $fdf_fn.' output - flatten' );

unlink( $fdf_fn ); // delete temp file
4

1 に答える 1

0

ホスティングプロバイダーで機能しない理由と、この問題を解決する方法を教えてください. 私はそれがセキュリティの問題であるという印象を受けています。

私の推測では、必要なディレクトリへの書き込み権限がありません。

現在の作業ディレクトリ ( ) に一時ファイルを作成します.。ホスティング プロバイダーと HTTP サーバーの構成によっては、現在の作業ディレクトリは不要であり、書き込み可能であるとは限りません。特に、プログラムはおそらくwwwまたはnobodyのID で実行されるためです。

「一時」ディレクトリのアクセス許可を作成してから調整するか、/tmp.

最後に、プログラムで「上向き」に移動する相対パスがあります。./../../reports/TEST.pdf fill_formこれがホスティングで有効になる可能性はほとんどありません...

于 2013-07-30T21:58:10.037 に答える