1

ユーザーが [PDF のエクスポート] ボタンをクリックしたときに、コンソール コマンドを実行しようとしています。Phantom JS を使用して PDF 出力を生成しています。

コマンドプロンプトで次を実行すると、すべて正常に動作します。

phantomjs.exe generate_pdf.js http://hidden_link.com/view_printable_proposal/CPpktzdnbwDB test.pdf

そこで、コントローラーに関数を作成しました。[PDF のエクスポート] ボタンをクリックすると、その関数に移動します。

<a href="<?= base_url().'create_pdf/'.$hash ?>"><button type="button" class="btn" style="width: 100%;">Export as PDF</button></a>

私が持っている機能全体:

public function create_pdf($hash = false)
{

    $output = 'phantomjs.exe generate_pdf.js http://hidden_link.com/view_printable_proposal/CPpktzdnbwDB test.pdf';
    shell_exec($output);
}

お分かりのように、どの言語でもコンソール コマンドを実行しようとしたことはありません。私も近いですか?

ありがとう!

PS: コンソール コマンドが何をしているのかわからない場合に、そのコンソール コマンドについての洞察を得るために、最初のビットである phantomjs.exe が .exe アプリケーションを呼び出しており、次に "generate_pdf" は .exe アプリと同じディレクトリにある JavaScript ファイルです. 3 番目の項目は、PDF に変換しようとしているものへのリンクです。最後の「test.pdf」は、エクスポート後に PDF に付ける名前です。繰り返しますが、コマンドプロンプトから実行しようとしているコマンドまで、すべてが正常に機能します。

ちなみに、現在、ボタンをクリックすると白いページに移動するだけで何も起こりません。

4

4 に答える 4

0

Phantomjs は、サーバー ユーザー www-data のような root 以外のユーザーから直接アクセスすることはできません。これは、Permission denied エラーが発生するためです。php ファイルを介して実行するには、回避策を実行する必要があります。完全なソリューションはこちらhttp://cisight.com/run-latest-phantomjs-with-shell_exec-php-on-ubuntu-11-10-oneiric/

于 2013-05-15T09:53:00.260 に答える