在单个HTTPPOST请求中传递文件资源和json主体



我正在构建一个REST API,我有一个端点,需要在这里传递文件资源和JSON主体。显然我做不到:

You can only select one HTTP request method! You asked for both POST.

当我在cURL请求中提供表单字段和这样的正文时,我收到了这个错误:

curl -X POST "http://127.0.0.1/path" -F "resource=@img.jpg" -d "@requestBody.json"

如果我想这样做,我需要将我的请求体作为表单字段本身传递:

curl -X POST "http://127.0.0.1/path" -F "resource=@img.jpg" -F "myRequestBody=@requestBody.json;type=application/json"

问题是,为了直接获取它,我需要使用file_get_contents()函数,然后对内容进行json解码。这不是一个好的解决方案,而且似乎有点慢。有更干净的方法吗?

根据文件的大小,可以对数据进行base64编码,并将其包含在JSON负载中。

否则,您将需要使用Content-Type: multipart/form-data

最新更新