ユーザーが [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 に付ける名前です。繰り返しますが、コマンドプロンプトから実行しようとしているコマンドまで、すべてが正常に機能します。
ちなみに、現在、ボタンをクリックすると白いページに移動するだけで何も起こりません。