簡體   English   中英

使用mpdf下載php文件

[英]Downloading php file using mpdf

我正在嘗試使用 mpdf 下載從數據庫生成的 php 發票。 不幸的是,它只指向頁面而不下載。 那么 mpdf 是否可以從另一個目錄下載 php 文件,我該如何實現。

<?php
require_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf();
include '../invoice-view.php';
$data = 'invoice-view.php';

$mpdf->WriteHTML($data);
$mpdf->Output('invoice.pdf', 'D');
?>

它重定向到頁面並且不下載 php 文件。

解決方案

 <?php
    require_once __DIR__ . '/vendor/autoload.php';

    $mpdf = new \Mpdf\Mpdf();       
    $data = file_get_contents('invoice-view.php');

    $mpdf->WriteHTML($data);
    $mpdf->Output('invoice.pdf', 'D');
    ?>

或者您使用CURL函數獲取內容。

<?php
$url="DOMAIN_NAME"."/invoice-view.php";

$timeout = 5;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
    curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , $timeout );
    $data = curl_exec($ch);
    curl_close($ch);


$mpdf->WriteHTML($data);
        $mpdf->Output('invoice.pdf', 'D');
?>

使用 curl 函數示例

測試文件

$params=array('name'=>'XYZ');

$data = file_get_contents_by_curl('http://localhost/test2.php',$params);

$mpdf->WriteHTML($data);
$mpdf->Output('invoice.pdf', 'D');

function file_get_contents_by_curl($url,$params) {
    $timeout = 5;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $params );   
    curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'POST' ); 
    curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
    curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , $timeout );
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

測試2.php

<h1>
Hi,<?php echo $_POST['name'];?></h1>

為了初始化$data你應該使用這個

$data = require '../invoice-view.php';

invoice-view.php生成html 字符串並返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM