laravel - 如何将图像从 Laravel Controller 发送到 API Rest

标签 laravel api guzzle6 guzzle

我需要从 Laravel 中的存储中获取图像,并将其从 Controller 发送到外部 API REST。

我正在使用 guzzlehttp multipart,但 API 没有收到文件,返回 file = null

最佳答案

这就是我几天前的做法(从请求中获取文件):

对于单个文件:

public function storeProductImage(Request $request, $id){
    $image = $request->file('image');
    $body = [
              "headers" => [
              "Accept" => "multipart/form-data"
             ],
             "multipart" => [
              "name" => "image",
              "contents" => file_get_contents($image),
              "filename" => $image->getClientOriginalName()
            ]
         ];
    return \GuzzleHttp\Client::request('POST', 'product/'.$id.'/images', $body);
}


对于多个文件:

public function storeProductImage(Request $request, $id){
    $body = [ "headers" => [
                "Accept" => "multipart/form-data"
              ],
              "multipart" => []
           ];
    $images = $request->file('image');
    if (is_array($images)) {
        foreach ($images as $image) {
            array_push($body["multipart"], ["name" => "image[]",
                "contents" => file_get_contents($image),
                "filename" => $image->getClientOriginalName()]);
        }
    }
    return \GuzzleHttp\Client::request('POST', 'product/'.$id.'/images', $body);
}

关于laravel - 如何将图像从 Laravel Controller 发送到 API Rest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60169118/

相关文章:

php - Symfony 无法识别通过 Guzzle 多部分/表单数据请求上传的多个文件

php - 无法在 PHP 中使用 Google Contacts API V3 创建联系人/群组

php - 不使用 curl 安装 Composer(本地)

ruby - 通过数组的API请求

javascript - Jquery Ajax API错误: 400 Bad Request

android - Google 地方自动完成给出 "Cannoat load results !"

Laravel - 套接字 - Ratchet - api 身份验证

php - 如何捕获包含在一对自定义 Blade 指令中的内容?

php - 方法 Illuminate\Database\Eloquent\Collection::update 不存在

php - GuzzleHttp\Psr7\Request 类的对象无法转换为字符串