Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php从api调用读取文件_Php_File - Fatal编程技术网

php从api调用读取文件

php从api调用读取文件,php,file,Php,File,我正在连接到第三方的API服务,以获取附加到给定票证的文件列表。其中一个调用是获取附件 call($client,'get_attachment',$data); $client和$data只是关于连接和文件名等的信息 结果就是实际的文件本身。如果我打印(调用(..),我会在浏览器窗口中获取文件本身。我如何向用户展示此内容以从我的页面下载?我想提供一个超链接,因此用户可以选择单击链接并下载此文件 foreach ($attachments as $id => $fileName){

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

 call($client,'get_attachment',$data);
$client和$data只是关于连接和文件名等的信息

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

  foreach ($attachments as $id => $fileName){
        echo "<a href='???'>".$fileName."</a>";
  }
foreach($id=>$fileName形式的附件){
回声“;
}
如果我需要在本地保存该文件,这很好,我将如何引用该文件

这是我对与此调用相关的第三方api的唯一说明:


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

解决此问题的一种方法是在两个单独的请求上调用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>";
}
//在呈现任何其他HTML之前,请将其包含在文件顶部。
if(isset($\u GET['file')){
//假设$data将包含对现在存储在$\u GET['file']中的文件名的引用
回显调用($client,'get_attachment',$data);
回来
}
//假设$attachments包含文件列表
foreach($id=>$fileName形式的附件){
回声“;
}
因此,您的链接最终链接到同一个页面,但在有人单击脚本顶部的链接后,您将进行API调用以获取文件内容,然后终止脚本(无论是
return
还是
exit
,都可以完成此任务)-假设您可以通过文件名调用文件的内容


您可能需要传递的不仅仅是文件名,也可能是id?无论您需要为附件调用API什么,都可以在链接上传递。

尝试:-
$url=print\r(call(..),true);
并使用此
$url
,因此如果我回显$url,我将获得文件本身。我想提供一个指向该文件的超链接“如何保存此文件?请在将文件放入a href的
a href=
中使用它。”