尝试显示 Nuxeo 文档时返回不可读的内容

问题描述

一个 API 可用于获取 Nuxeo 文档的预览;是这样的:

http://localhost:8080/nuxeo/site/api/v1/repo/default/id/563c04bf-897d-48e5-863e-08cebeeccb06/@blob/file:content/@preview/image

它应该显示图像内容

enter image description here

现在我在 file_get_contents调用它,但我得到了不可读的内容

enter image description here

<?PHP

$opts = [
            "http" => [
                "method" => "GET","header" => array("Authorization: Basic " . base64_encode('Administrator:Administrator'),"Content-type: image/jpg")
            ]
        ];
$context = stream_context_create($opts);

echo file_get_contents("http://localhost:8080/nuxeo/site/api/v1/repo/default/id/563c04bf-897d-48e5-863e-08cebeeccb06/@blob/file:content/@preview/image",false,$context);

?>

我尝试使用 gzdecode,但我收到 data error 异常,尽管 magic_quotes_runtime 文件中不存在 ini

那怎么解决呢?

编辑:

即使卷曲它,我也会得到相同的结果:

<?PHP

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,"http://localhost:8080/nuxeo/site/api/v1/repo/default/id/563c04bf-897d-48e5-863e-08cebeeccb06/@blob/file:content/@preview/image");
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
    'Authorization: Basic ' . base64_encode('Administrator:Administrator'),'Content-Type: image/jpeg'
));

curl_exec($ch);

curl_close($ch);

编辑 2 :

以下是来自开发工具的标题

    Request URL: http://tester/nuxeodociframe.PHP
Request Method: GET
Status Code: 200 OK
Remote Address: [::1]:80
Referrer Policy: strict-origin-when-cross-origin

    **Response Headers**

    Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Date: Mon,11 Jan 2021 13:50:53 GMT
Keep-Alive: timeout=5,max=100
Server: Apache/2.4.39 (Win64) PHP/7.2.18
transfer-encoding: chunked
X-Powered-By: PHP/7.2.18

    **Request Headers**

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip,deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Cookie: qa_id=3976046217316149434; qa_noticed=1; RT="z=1&dm=tester&si=9brcldlzx2&ss=kjsghu2u&sl=0&tt=0"; __utma=244493312.1444286480.1610362906.1610362906.1610362906.1; __utmc=244493312; __utmz=244493312.1610362906.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Host: tester
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/87.0.4280.141 Safari/537.36

解决方法

您的浏览器需要知道如何解密它收到的信息。 在这种情况下,您必须“通知”他这是一张图片。 因此,您将添加:

编辑: 在任何回声之前添加这一行

header("content-type: image/jpeg");

如果图像不是 jpeg,则必须添加合适的 header

同时删除关闭标签 ?>