为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 从原始多部分/混合 POST 请求访问附件?

如何使用 PHP 从原始多部分/混合 POST 请求访问附件?

PHP
回首忆惘然 2021-11-26 15:00:15
我有一个 API 端点,它接收一个多部分/混合 POST。内容是一个 XML 文件和一个 PDF 作为附件。我能够将 2 部分与原始请求数据分开,并且可以提取和解析 XML。如何访问 PDF 附件?或者,我的尝试是否是正确的方法,而我在该逻辑上有错误?(如果需要,我可以发布这部分代码)
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

这个问题是我想多了;解决方案比我最初的尝试简单得多。


我将通过 http POST 请求发送到我的应用程序的部分分隔为 $blocks[](使用 Content_Type 标头中发送的边界分隔)

我遍历 $blocks[] 并通过查看前几个字节来处理每种类型。

对于我使用的 PDF 块,preg_match('/(%PDF.*)/s', $block, $matches);然后将 $matches[1] 的内容写入文件。

这是编写 PDF 的代码块:


//get the filename

preg_match('/filename=\"(.*)/', $block, $matches);

$filename = $matches[1];

$filename = rtrim(trim($filename), '"');


preg_match('/(%PDF.*)/s', $block, $matches);

$PDFDecoded = $matches[1];

$directory = 'path/to/store/PDFs';

$PDFfile = $directory . $filename;

$pdf = fopen($PDFfile, 'w'); //if you are on Windows, you may need 'wb'

fwrite($pdf, $PDFDecoded);

fclose($pdf);

我希望这可以帮助别人。


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信