PHP прочитать файл из вызова API - PullRequest
0 голосов
/ 20 сентября 2018

Я подключаюсь к стороннему API-сервису, чтобы получить список файлов, прикрепленных к данному тикету.Одним из вызовов является get_attachment.

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

$ client, а $ data - это просто информация о соединении и имени файла и т. Д. ...

результат - сам файл.если я print_r (вызов (....)), я получаю сам файл в моем окне браузера.Как я могу представить это пользователю для загрузки с моей страницы?Я хотел бы предоставить гиперссылку, чтобы пользователь мог щелкнуть ссылку и загрузить этот файл.

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

Если мне нужно сохранить файл локально, это нормально, как я буду ссылаться на эту ссылку?file ??

Это единственное примечание, которое я имею для API стороннего производителя, связанного с этим вызовом:

"Этот метод выведет данные файла для указанного вложения."

1 Ответ

0 голосов
/ 20 сентября 2018

Один из подходов к решению этой проблемы заключается в вызове 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-код, когда кто-то щелкает ссылкувверху вашего скрипта вы должны были бы сделать вызов API, чтобы получить содержимое файла, а затем завершить скрипт (либо return, либо exit сделает свое дело) - при условии, что вы можете вызвать содержимое файла по его имени файла.

Возможно, вам потребуется передать больше, чем имя файла, может быть, идентификатор?Все, что вам нужно для вызова API для вложения, вы можете перейти по ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...