php - จะบันทึก PDF ไปยังเซิร์ฟเวอร์ได้อย่างไร

ฉันต้องการแก้ไขโค้ดปัจจุบัน ดังนั้นเอาต์พุต pdf ที่ฉันได้รับเมื่อสร้างป้ายกำกับจึงบันทึกไว้ในเซิร์ฟเวอร์ด้วย ฉันมี 2 ฟังก์ชันที่เกี่ยวข้องกับการสร้าง pdf และอนุญาตให้ฉันบันทึกลงในเครื่องท้องถิ่น ข้อมูลนำมาจากแหล่งที่มาของบุคคลที่สาม


private function print_order_parcel_label( $tracking_number = null ) 
{
$label_size = get_option( \'dpd_label_size\' );


$response = self::http_client( \'parcelPrint_\', [
\'parcels\' => $tracking_number,
\'printType\' => \'PDF\',
\'printFormat\' => $label_size ? $label_size : \'A4\'
] );

$json_response = json_decode( $response );

if ( $json_response && $json_response->status == \'err\' ) {
return null;
} else {
// echo $response;
$this->get_labels_output( $response );


}
}

private function get_labels_output( $pdf, $file_name = \'dpdLabels\' ) {
$name = $file_name . \'-\' . date( \'Y-m-d\' ) . \'.pdf\';

header( \'Content-Description: File Transfer\' );
header( \'Content-Type: application/pdf\' );
header( \'Content-Disposition: attachment; filename="\' . $name . \'"\' );
header( \'Content-Transfer-Encoding: binary\' );
header( \'Connection: Keep-Alive\' );
header( \'Expires: 0\' );
header( \'Cache-Control: must-revalidate, post-check=0, pre-check=0\' );
header( \'Pragma: public\' );

echo $pdf;

die;
}

Answer

วิธีแก้ปัญหา:

ในฟังก์ชัน get_labels_output คุณสามารถเพิ่มก่อน "die"


file_put_contents(\'../pathToSaveYourPdfFiles/\'.$name, $pdf);

Source