php从api调用中读取文件

时间:2018-09-20 13:44:50

标签: php file

我正在连接到第三方的API服务,以获取附加到给定票证的文件列表。调用之一是get_attachment。

 call($client,'get_attachment',$data);

$ client和$ data只是有关连接和文件名等的信息...

结果是实际文件本身。如果我print_r(call(....)),我会在浏览器窗口中获取文件本身。我如何向用户展示此内容以从我的页面下载?我想提供一个超级链接,以便用户可以选择单击链接并下载此文件。

  foreach ($attachments as $id => $fileName){
        echo "<a href='???'>".$fileName."</a>";
  }

如果我需要在本地保存文件就可以了,那么我将如何引用该文件?

这是我与此通话相关的第三方api的唯一记录:

“此方法将输出指定附件的文件数据。”

1 个答案:

答案 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调用需要什么,都可以通过链接。