【发布时间】:2012-03-14 18:07:31
【问题描述】:
我从生成 PDF 并将其转换为字节数组的 WCF 服务获取字节数组。我需要能够获取字节数组并使用 PHP 或 Javascript(或 jQuery)获取该字节数组并将其转换回可下载的 PDF。我更喜欢 Javascript 的解决方案,但 PHP 也可以正常工作。
我用来获取 PDF 的代码是:
<?php
$userPDF = $_POST['username'];
$passPDF = $_POST['password'];
$idPDF = 'MO-N007175A';
//PDF Function
$data = array("id" => $idPDF, "username" => $userPDF, "password" => $passPDF);
$data_string = json_encode($data);
$ch = curl_init('http://********.com/******/v1/DealPdf');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_VERBOSE, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
var_dump($result);
?>
var_dump($result); 是
string(1053285) "[37,80,68,70,45,49,46,54,10,37,211,244,204,225, ...
数组持续了一段时间......所以我只提供了一小部分作为示例。
我从哪里开始从这个数组中获取 PDF?
编辑 澄清一下 - WCF 服务正在返回一个实际的 PDF,只是在一个字节数组中。我需要将此字节数组保存为客户端机器上的 PDF。我用过 fwrite 等等,但我一定是遗漏了一些东西,因为我没有看到它工作。
另外 - 如果我使用 fwrite,它会在哪里输出文件? 编辑
【问题讨论】:
-
JavaScript 无法做到这一点。在 PHP 中,您将发送 PDF 的 MIME 标头,然后是字节流。
-
字节不足以生成PDF...这个字节的单词、图像、线条任何东西...
-
那么这在发送 MIME 标头并写出字节流时是否正确?它不起作用..我在做的事情是错误的。可能是什么?
header('Content-Type: application/pdf'); $fp = fopen( 'file.pdf', 'wb' ); fwrite( $fp, $result); fclose( $fp ); -
我想知道您为什么在 8 日问了这个确切的问题并接受了答案。无论如何,您说您正在获得一个包含 pdf 内容的字节数组。你为什么要转换它?处理字节数组的一种未经优化的方法是在 php 中将其视为字符串,并且您可以使用与字节数组相同的数组索引来访问数组项。如果 WCF 服务确实在创建和返回格式为 PDF 的数据,那么您只需将其发送到文件(或带有标题的客户端)。
-
我认为之前(8日)的答案是正确的,但它并没有实现我的最终目标。我错过了 - 理解发生了什么。是的,它包含 PDF 的内容。使用“转换”不是正确使用的术语。相反,我需要简单地写出这个字节数组。我还没有遇到一个有效的解决方案......但是,我会回到几天前改变这个问题。
标签: php javascript jquery arrays curl