来自 API 的二进制图像,转换并保存路径
Binary image from API, convert and save path
我从 API (Line API)
接收二进制图像
// if status 200
if ($response->isSucceeded()) {
// get binary image from api
$binary = $response->getRawBody();
// convert to base64?
$imageData = base64_encode($binary);
// what do i do here?
}
收到后,我想把图片保存在我的public文件夹中,并将路径保存在我的数据库中。
SO 上有几个答案,我认为可以像使用 intervention/image 一样工作,但我无法解决这个问题。我还发现一条评论说这无法完成。有人可以给我提示我该怎么做吗?或者这是否可能?
谢谢。
如果您正在使用Laravel,那么您可以使用Storage
facade 来帮助您将内容写入private
存储或public
存储。
如果图像已经是二进制文件,则 put/write 原样,二进制文件。
根据文档,您可以将图像存储为示例:
use Illuminate\Support\Facades\Storage;
// ..... controller
// if status 200
if ($response->isSucceeded()) {
// get binary image from api
$binary = $response->getRawBody();
Storage::disk("public")->put("/img/some-image.jpg",$binary);
// you can echo the URL, and return it to your API or show on web
echo url("storage/img/some-image.jpg");
// or you can write to DB
// Example Model, change to anything
$imgTable = new TableImage();
$imgTable->url = url("storage/img/some-image.jpg");
$imgTable->save();
}
您可以使用Log
facade 来记录保存图像的结果。
希望这对您有所帮助,如果对您有帮助,请将其设置为可接受的答案。谢谢。
我从 API (Line API)
接收二进制图像// if status 200
if ($response->isSucceeded()) {
// get binary image from api
$binary = $response->getRawBody();
// convert to base64?
$imageData = base64_encode($binary);
// what do i do here?
}
收到后,我想把图片保存在我的public文件夹中,并将路径保存在我的数据库中。 SO 上有几个答案,我认为可以像使用 intervention/image 一样工作,但我无法解决这个问题。我还发现一条评论说这无法完成。有人可以给我提示我该怎么做吗?或者这是否可能?
谢谢。
如果您正在使用Laravel,那么您可以使用Storage
facade 来帮助您将内容写入private
存储或public
存储。
如果图像已经是二进制文件,则 put/write 原样,二进制文件。
根据文档,您可以将图像存储为示例:
use Illuminate\Support\Facades\Storage;
// ..... controller
// if status 200
if ($response->isSucceeded()) {
// get binary image from api
$binary = $response->getRawBody();
Storage::disk("public")->put("/img/some-image.jpg",$binary);
// you can echo the URL, and return it to your API or show on web
echo url("storage/img/some-image.jpg");
// or you can write to DB
// Example Model, change to anything
$imgTable = new TableImage();
$imgTable->url = url("storage/img/some-image.jpg");
$imgTable->save();
}
您可以使用Log
facade 来记录保存图像的结果。
希望这对您有所帮助,如果对您有帮助,请将其设置为可接受的答案。谢谢。