下記からExcelの雛形へ追記後、PDF化して保存
php
1 $soffice = '***************/tool/LibreOffice/program/soffice.exe'; 2 $command ="$soffice --headless --convert-to pdf --outdir **************/text/save/kanridaityou/pdf $orderNote"; 3// echo $command, PHP_EOL; 4 exec($command, $out, $ret);
上記の時点でExcel、PDFともに正常に開きます。
※ファイル名はkanridaityou+社員名(日本語).pdfもしくは.xlsx
画面が切り替わり下記の画像が表示されて、
保存ボタン→PCや携帯端末へダウンロード、閲覧
添付送信ボタン→PDF添付して送信処理
実は昨日夜中には
添付送信(添付ファイルも正常に閲覧可)でしたし、
保存(PCにてダウンロード→閲覧可)でした。
強いてできなかったのが携帯へダウンロードはできましたが関連付けができていなかったのか、
clickしても開きませんでした。
こちらについては実際あるPDFファイルをクリックすると閲覧できました。
しかし本日は下記の様に閲覧ができない状態です。
コード1は下記(保存)となります
php
1 //ファイル名 2// $fileName2 = $filefolder.$fileName . '.pdf'; 3 $fileName2 = 'kanridaityou'.$fileName . '.pdf'; 4 // PDFファイルの読み込みと表示部分 5 $path = __DIR__ . "/text/save/kanridaityou/pdf/$fileName2"; 6// $path = __DIR__ . "/text/save/$filefolder/pdf/$fileName2"; 7 8 if (!preg_match('/\A\S+?/\S+/', $path)) { 9 $path = 'application/octet-stream'; 10 } 11 12 header('Content-Type: ' . $path); 13 14 header('X-Content-Type-Options: nosniff'); 15 //-- ダウンロードファイルのサイズ 16 17 header("Content-Transfer-Encoding: Binary"); 18 header('Content-Length: ' . filesize($path)); 19 header('Content-Disposition: inline; filename="' . basename($path) . '"'); 20// header('Content-Disposition: inline; filename="'.$fileName2.'"'); 21 22 // ファイルを読み込んで出力 23 readfile($path); 24 25 exit;
添付送信についてもコードは同じようなものを使用して、
modelへ投げて送信しており、正常にPDFの添付はされて送信しますが、閲覧はできません
ファイル名の日本語が駄目だと思い、色々付けましたがうまくいきませんでした。
1.日本語を使用せずアルファベット
2.MB_converterの様なものでUTF8やSHIFT_JSなど
LibreOfficeにてExcel追記とPDF化したものについてはアルファベット+日本語名で作成しておりますが、
閲覧は正常にできます
やりたいことはサーバー側に保存したPDFを正常に閲覧可能状態でダウンロードと添付送信をおこないたいです。
宜しくお願いいたします
追記…
ちなみにgoogle chromeのダウンロード履歴を見ると
file:///C:/Users/user/Desktop/kanridaityou%E5%BB%A3%E5%B********************.pdf
このな感じで日本語である社員名だけ記号などの羅列になっております
この辺の変換の問題でしょうか
動作環境は以下です。
サーバー windows server 2012
php7
mysql
クライアント Windows 10
PHP 7
宜しくお願いいたします
回答2件
あなたの回答
tips
プレビュー