पृष्ठभूमिब्राउज़र को बाइनरी धारा पीएचपी
का उपयोग कर ब्राउज़र को पीएचपी के माध्यम से यात्रा करना का उपयोग करके लिखा एक पीडीएफ रिपोर्ट स्ट्रीम करने के लिए कोशिश कर रहा है लिखें। सामान्य समस्या यह है कि आप PHP का उपयोग कर ब्राउज़र में बाइनरी डेटा कैसे लिखते हैं?
कार्य संहिता
header('Cache-Control: no-cache private');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment, filename=climate-report.pdf');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
$path = realpath(".") . "/output.pdf";
$em = java('net.sf.jasperreports.engine.JasperExportManager');
$result = $em->exportReportToPdf($pm);
header('Content-Length: ' . strlen($result));
$fh = fopen($path, 'w');
fwrite($fh, $result);
fclose($fh);
readfile($path);
बेकार कोड
header('Cache-Control: no-cache private');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment, filename=climate-report.pdf');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
$path = realpath(".") . "/output.pdf";
$em = java('net.sf.jasperreports.engine.JasperExportManager');
$result = $em->exportReportToPdf($pm);
header('Content-Length: ' . strlen($result));
echo $result;
प्रश्न
मैं कैसे फ़ाइल के लिए लिख के बीच कदम बाहर ले जाना और लिख सकते हैं सीधे ब्राउज़र पर ताकि पीडीएफ हो दूषित नहीं है?
अद्यतन
पीडीएफ फाइल आकार:
- कार्य: 594,778 बाइट्स
- गैर काम: 1,059,365 बाइट्स
धन्यवाद!
सभी हेडर है कि आप पहले काम से बाहर काट जोड़ने करता है? –
@ कैसी: हेडर हमेशा दोनों मामलों में समान रहे हैं। संशोधित समस्या देखें। –
अहह जलवायु रिपोर्ट है! कोई चिंता नहीं, यह सामान्य है। वे हमेशा * बग्गी *;) –