我正在连接到第三方的API服务,以获取附加到给定票证的文件列表。调用之一是get_attachment。
call($client,'get_attachment',$data);
$ client和$ data只是有关连接和文件名等的信息...
结果是实际文件本身。如果我print_r(call(....)),我会在浏览器窗口中获取文件本身。我如何向用户展示此内容以从我的页面下载?我想提供一个超级链接,以便用户可以选择单击链接并下载此文件。
foreach ($attachments as $id => $fileName){
echo "<a href='???'>".$fileName."</a>";
}
如果我需要在本地保存文件就可以了,那么我将如何引用该文件?
这是我与此通话相关的第三方api的唯一记录:
“此方法将输出指定附件的文件数据。”
答案 0 :(得分:1)
解决此问题的一种方法是在两个不同的请求上调用API,一次是获取列表,另一种是下载文件。
如果您的列表页面最终如下所示,它将显示附件,然后单击链接将在新标签上打开附件并下载文件
// include this at the top of your file before any other HTML is rendered.
if (isset($_GET['file')) {
// assuming $data will contain some reference to the filename now stored in $_GET['file']
echo call($client,'get_attachment',$data);
return;
}
// assuming $attachments contains the list of the files
foreach ($attachments as $id => $fileName){
echo "<a href='thisPage.php?file=" . $fileName . "'>" . $fileName . "</a>";
}
因此,您的链接最终将链接到同一页面,但是,一旦有人单击脚本顶部的链接,您便可以进行API调用以获取文件内容,然后终止脚本({ {1}}或return
可以解决问题)-假设您可以通过文件名来调用文件的内容。
您可能需要传递的不仅仅是文件名,也许是ID?进行附件的API调用需要什么,都可以通过链接。