web-dev-qa-db-ja.com

TCPDFファイルをフォルダーに保存しますか?

TCPDFを使用して領収書を印刷し、phpMailerで顧客に送信していますが、問題があります。

PDFにファイルを保存する方法がわかりません。

私はこれを試しました:

// reset pointer to the last page
$pdf->lastPage();

//Close and output PDF document
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'I');
$this->Output("kuitit");
27
user1537415

これを試して

$pdf->Output('kuitti'.$ordernumber.'.pdf', 'F');
50

これにより、生成されたpdfファイルがプロジェクトのカスタムフォルダーに保存されます。

$filename= "{$membership->id}.pdf"; 
$filelocation = "D:\\wamp\\www\\project\\custom";//windows
$filelocation = "/var/www/project/custom"; //Linux

$fileNL = $filelocation."\\".$filename;//Windows
$fileNL = $filelocation."/".$filename; //Linux

$this->pdf->Output($fileNL, 'F');
20
Developer

$pdf->Output()は2番目のパラメーター$dest、単一の文字を受け入れます。デフォルト、 $dest='I'は、ブラウザでPDFを開きます。

Fを使用してファイルに保存します

$pdf->Output('/path/to/file.pdf', 'F')
16
nick

私のために働いた唯一のもの:

// save file
$pdf->Output(__DIR__ . '/example_001.pdf', 'F');
exit();
11
user1477388

ファイルを保存するのが難しい人のために、パスはルートを通る必要があります。たとえば、私のものは:

$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
5
CIRCLE
$pdf->Output( "myfile.pdf", "F");

TCPDFエラー:出力ファイルを作成できません:myfile.pdf

の中に include/tcpdf_static.php静的関数の2435行についてのファイルfopenLocal 'ifステートメント'を完全に削除するとうまくいきます。

public static function fopenLocal($filename, $mode) {
    /*if (strpos($filename, '://') === false) {
        $filename = 'file://'.$filename;
    } elseif (strpos($filename, 'file://') !== 0) {
        return false;
    }*/
    return fopen($filename, $mode);
}
3
Atul Baraiya

それでもまだ

TCPDFエラー:出力ファイルを作成できません:myfile.pdf

PDFデータを変数に入れ、この文字列をファイルに保存することにより、TCPDFのファイル保存ロジックを回避できます。

$pdf_string = $pdf->Output('pseudo.pdf', 'S');
file_put_contents('./mydir/myfile.pdf', $pdf_string);
2
Mesa

nickの例では、ローカルホストに保存します。
ただし、ローカルドライブに保存することもできます。
二重バックスラッシュを使用する場合:

 $filename= "Invoice.pdf"; 
 $filelocation = "C:\\invoices";  

 $fileNL = $filelocation."\\".$filename;
 $pdf->Output($fileNL,'F');

 $pdf->Output($filename,'D'); // you cannot add file location here

追伸Firefox(オプション)で、[ツール]> [オプション]> [全般]タブ> [ダウンロード]> [ファイルの保存先を常に確認する]

2
KarlosFontana

TCPDFは fopen() を使用してファイルを保存します。したがって、TCPDFのOutput()関数に渡されるパスはすべて絶対パスである必要があります。

相対パスに保存する場合は、たとえば__DIR__グローバル定数( この回答 を参照)。

2
Jamy Mahabier

試してみてください。

$this->Output(/path/to/file);

あなたにとって、それは次のようになります。

$this->Output(/kuitit/);  //or try ("/kuitit/")
0