Рестлер, не обслуживающий данные с принудительной загрузкой, установленной в true?

У меня есть странная проблема здесь, при использовании API restler, кажется, что тип содержимого заголовков сбрасывается, даже если я принудительно установить его на что-то другое... Кажется, как будто$r = new Restler(); $r->setSupportedFormats('JsonFormat');Всегда сбрасывает его на "Content-Type: application/json; charset=utf-8"

Итак, каким образом я могу вручную переопределить тип MIME по умолчанию на то, что я хочу? Кроме того, ничего плохого не происходит, вот как это выглядит при запросе загрузки файла: Cache-Control: no-cache, must-revalidate Connection: Keep-Alive Content-Disposition: attachment; filename="test.pdf" Content-Encoding: gzip Content-Language: en Content-Length: 25 Content-Type: application/json; charset=utf-8

И это то, что я установил в phpcode:

header("Content-type: application/pdf"); header("Content-Length: ". $data["Size"]); header('Content-Disposition: attachment; filename="'. $data["Name"].'"');

Любая помощь, чтобы заставить его как тип контента, пожалуйста? (jftr, pdf - пример, есть много других возможных типов)

1 ответ

Решение

Рестлер устанавливает заголовки после того, как мы вернем результат из нашего метода API

Если мы хотим переопределить это поведение по умолчанию, нам нужно прекратить выполнение дальше, просто добавьте die/exit, как показано ниже в вашем методе API.

header("Content-type: application/pdf"); 
header("Content-Length: ". $data["Size"]); 
header('Content-Disposition: attachment; filename="'. $data["Name"].'"');
die();

НТН

Другие вопросы по тегам