如何在来自 guzzle API 的 return 图像之后在 laravel 中显示图像
How to display image in laravel after return image from guzzle API
您好,我想通过发送带有 jwt 令牌的 API 来在我的项目中显示私有图像。我使用 postman 来测试。邮递员 return 一张图片,但如何显示像 post man.
这样的图片
这是我的代码控制器 sendApi
public function getIdCard($name) {
$token = $this->getToken();
$client = new Client(['base_uri' => env('URL_FRONTEND')]);
$headers = [
'Authorization' => 'Bearer ' . $token,
];
$response = $client->request('GET', 'storage/getIdCard/icQE5nwU1jQl1lrIZJmGxVs2GDIIsDjbuQo541VlwzhNTl7iEe1555385649.png', [
'headers' => $headers
]);
$response = $response->getBody()->getContents();
return $response;
}
这是我的API/控制器[来自另一个项目]
public function getIdCard($file_name){;
$storagePath = storage_path('app/id_card/'. $file_name);
return Image::make($storagePath)->response();
}
这是我得到的
PNG IHDR��B5 pHYs���+ IDATx��yx�U�?��Nw�@B�o�Ha"ʦ� ����(.����� ��l^t��늨�D�EYe5Q�d5l��,$d�������'U眷�~��ɓ~�R���T�yC���t� ��b���`�$���z�Á�� ->W� ]�+��*������L�����"y��Hn��yj��H�Ma�ɗ�"��x��ǹϺxt�7�8���H��M�_0�ҿs�/<��o�X����h*,��,5e�Ή��1{�e��pS�,�M����z��)�R8fd5����\����SƗ�r�:J�j�ǸO�UfK�d�U��vR:��ƛ7*��v2�������dS�T礱����=c/j��\�kus��:������,�DE�Z��E���R)Y�AT���!~��(�s�m@ͻ��M:"&n�����d���/�8��]�1�d���[� +5�s.tyǩ)��lF��ĬJ���us����[c�F:�U����%����/���*]���B�'Q��2]:X������q���R_�5N���"n�j� �[����}W}��#�7��{Va?��íQ���]5�����_J���¤��6NG�-͜5n?#�8Ug�z��esoT��]+����!]�E]�x����D=[�N�K���8��*5�3Ήrd�p�ps:�#%��O��-�\E^:gNg^��rq��O��iPT�\q�(�_�3{84�����kWH�o��Zw��/�Y�+��r��
在Postman里面是return的图片怎么在like里显示postman
更新
我在 Api/controller 中添加功能仍然无法正常工作
public function getIdCard($file_name){;
$storagePath = storage_path('app/id_card/'. $file_name);
$headers = [
"Content-type: image/png",
];
return response()->file($storagePath, $headers);
}
**更新 2 **
我在做 2 个项目
- 第一个项目我return API return response()->file($storagePath, $headers);
-然后我使用 post man 并且它是 return image
- 我想从 API 获取图像的第二个项目,我使用
$response = $response->getBody()->getContents();
是return text/html如何显示成图片
我真的不知道你的图片是什么class,所以我想说说如何用内置函数来做。
return response()->file($pathToFile, $headers);
很可能通过调用文件方法,您不需要任何 headers(作为第二个参数),但如果您需要一个,请尝试使用类似 ["Content-type: image/png"]
解决方法如下:
$data = $response->getBody()->getContents();
$base64 = 'data:image/png;base64,' . base64_encode($data);
echo '<img src="'.$base64.'">';
您好,我想通过发送带有 jwt 令牌的 API 来在我的项目中显示私有图像。我使用 postman 来测试。邮递员 return 一张图片,但如何显示像 post man.
这样的图片这是我的代码控制器 sendApi
public function getIdCard($name) {
$token = $this->getToken();
$client = new Client(['base_uri' => env('URL_FRONTEND')]);
$headers = [
'Authorization' => 'Bearer ' . $token,
];
$response = $client->request('GET', 'storage/getIdCard/icQE5nwU1jQl1lrIZJmGxVs2GDIIsDjbuQo541VlwzhNTl7iEe1555385649.png', [
'headers' => $headers
]);
$response = $response->getBody()->getContents();
return $response;
}
这是我的API/控制器[来自另一个项目]
public function getIdCard($file_name){;
$storagePath = storage_path('app/id_card/'. $file_name);
return Image::make($storagePath)->response();
}
这是我得到的
PNG IHDR��B5 pHYs���+ IDATx��yx�U�?��Nw�@B�o�Ha"ʦ� ����(.����� ��l^t��늨�D�EYe5Q�d5l��,$d�������'U眷�~��ɓ~�R���T�yC���t� ��b���`�$���z�Á�� ->W� ]�+��*������L�����"y��Hn��yj��H�Ma�ɗ�"��x��ǹϺxt�7�8���H��M�_0�ҿs�/<��o�X����h*,��,5e�Ή��1{�e��pS�,�M����z��)�R8fd5����\����SƗ�r�:J�j�ǸO�UfK�d�U��vR:��ƛ7*��v2�������dS�T礱����=c/j��\�kus��:������,�DE�Z��E���R)Y�AT���!~��(�s�m@ͻ��M:"&n�����d���/�8��]�1�d���[� +5�s.tyǩ)��lF��ĬJ���us����[c�F:�U����%����/���*]���B�'Q��2]:X������q���R_�5N���"n�j� �[����}W}��#�7��{Va?��íQ���]5�����_J���¤��6NG�-͜5n?#�8Ug�z��esoT��]+����!]�E]�x����D=[�N�K���8��*5�3Ήrd�p�ps:�#%��O��-�\E^:gNg^��rq��O��iPT�\q�(�_�3{84�����kWH�o��Zw��/�Y�+��r��
在Postman里面是return的图片怎么在like里显示postman
更新 我在 Api/controller 中添加功能仍然无法正常工作
public function getIdCard($file_name){;
$storagePath = storage_path('app/id_card/'. $file_name);
$headers = [
"Content-type: image/png",
];
return response()->file($storagePath, $headers);
}
**更新 2 **
我在做 2 个项目 - 第一个项目我return API return response()->file($storagePath, $headers); -然后我使用 post man 并且它是 return image - 我想从 API 获取图像的第二个项目,我使用
$response = $response->getBody()->getContents();
是return text/html如何显示成图片
我真的不知道你的图片是什么class,所以我想说说如何用内置函数来做。
return response()->file($pathToFile, $headers);
很可能通过调用文件方法,您不需要任何 headers(作为第二个参数),但如果您需要一个,请尝试使用类似 ["Content-type: image/png"]
解决方法如下:
$data = $response->getBody()->getContents();
$base64 = 'data:image/png;base64,' . base64_encode($data);
echo '<img src="'.$base64.'">';