Php PSR-7响应,获取文件mime类型
我有一个Php PSR-7响应,获取文件mime类型,php,http,http-headers,mime-types,psr-7,Php,Http,Http Headers,Mime Types,Psr 7,我有一个$response变量,它实现了Psr\Http\Message\ResponseInterface 它包含有关下载文件的信息。如何获取此文件的mime类型?由于ResponseInterface扩展了MessageInterface,因此可以使用or方法检索内容类型响应头的值。例如 $mimeType = $response->getHeaderLine('Content-Type'); 注意:我使用了getHeaderLine,因为内容类型标题不太可能包含多个值,这将使您不必
$response
变量,它实现了Psr\Http\Message\ResponseInterface
它包含有关下载文件的信息。如何获取此文件的mime类型?由于
ResponseInterface
扩展了MessageInterface
,因此可以使用or方法检索内容类型
响应头的值。例如
$mimeType = $response->getHeaderLine('Content-Type');
注意:我使用了
getHeaderLine
,因为内容类型标题不太可能包含多个值,这将使您不必将返回值视为单个项目数组。因为响应界面
扩展了消息接口
,您可以使用or方法检索内容类型
响应标题的值。例如
$mimeType = $response->getHeaderLine('Content-Type');
注意:我使用了getHeaderLine
,因为内容类型
标题不太可能包含多个值,这样可以避免将返回值视为单个项目数组。您可以尝试$response->getHeader('Content-Type')
。请参见@Phil,对我来说,$response->getHeader('Content-Type')[0]
工作得很好。您可以回答,我会接受答案。您可以尝试$response->getHeader('content-type')
。请参见@Phil,对我来说,$response->getHeader('Content-Type')[0]
工作得很好。你可以回答,我会接受你的回答。你说不太可能,而我总是得到内容类型,比如application/json;字符集=UTF-8
。Guzzle实现中的getHeader()
方法并没有像我预期的那样将其分为两部分。PSR-7应该能够处理这个额外的“字符集”部分,还是由应用程序来完成呢?@Jason,这仍然只是一个标题。HTTP头的问题是,它们可能会以不同的值重复,因此健壮的实现将始终为每个头名称提供一组值(您说不太可能),而我始终获得内容类型,如application/json;字符集=UTF-8
。Guzzle实现中的getHeader()
方法并没有像我预期的那样将其分为两部分。PSR-7应该能够处理这个额外的“字符集”部分,还是由应用程序来完成呢?@Jason,这仍然只是一个标题。HTTP头的问题是,它们可能会以不同的值重复,因此健壮的实现将始终提供每个头名称的值集合