使用Laravel将图像文件上传至API

j9per5c4  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(148)

我正在尝试使用外部API调用上载文件。但是在尝试将数据附加到请求时遇到一些问题。我需要将文件本身和文件名作为表单数据附加。
我尝试了以下方法:

$response = Http::attach('image', $file->path(), $fileName)->withOptions([
                        "multipart" => [
                            "name" => "image",
                            "contents" => fopen($file->path(), "r"),
                            "filename" => $fileName,
                        ],
                        [
                            "name" => "fileName",
                            "contents" => $fileName
                        ]
                        ])->post("<API-ENDPOINT>");

但是我在post()方法中遇到错误,该方法需要一个数组?
我也试过这样发

$response = Http::post("<API ENDPOINt>", 
                    [
                        "multipart" => [
                            [
                                "name" => "image",
                                "contents" => file_get_contents("storage/app/images/".$fileName),
                                "filename" => $fileName,
                            ],
                            [
                                "name" => "fileName",
                                "contents" => $fileName,
                            ]
                        ]
                    ]);

但这也没有像预期的那样工作,我得到了file_get_contents(storage/app/images/e5b7e91dfa34a94f09d200f9436ea4e3f3c0d46e-action-helicopter.jpg): Failed to open stream: No such file or directory,即使该文件确实存在。
这里的任何帮助将不胜感激。不一定要使用这些方法,只是任何方式来POST的文件数据以及文件名,可以访问的形式主体的请求。尝试检查文档和其他论坛,但没有以前的答案帮助。

ddhy6vgd

ddhy6vgd1#

我得到了它排序使用以下:

$response = Http::attach('image', file_get_contents($file->path()), $fileName)->post("<endpoint>", [
                        "fileName" => $fileName
                    ]);```

相关问题