我正在尝试通过以下代码(使用 cpprest 库)将图片上传到我服务器上的 rest API:
int uploadActiveUserImage(std::string *fileName)
{
auto fileStream = std::make_shared<istream>();
// Open stream to output file.
pplx::task<void> requestTask = fstream::open_istream("activeUser.png").then([=](istream frame)
{
*fileStream = frame;
// Create http_client to send the request.
auto client = http_client{U(".....website..../api/activeUser/image")};
//auto client = http_client{U("http://localhost/smartmirrorAPI/smartmirrorAPI/api/activeUser/image")};
// Build request URI and start the request.
auto query = uri_builder()
.to_string();
return client.request(methods::PUT, query, *fileStream);
})
此代码在将图片发送到 microsoft faces api 以及发送到 localhost 但不发送到我的服务器时有效。我可以使用 chrome 上的邮递员扩展将图片发送到我的 api(在我的服务器上),因此文件权限没有问题。
这是处理请求的服务器上我的 api 代码的片段。
case 'PUT':
$data = file_get_contents("php://input");
if (is_null($data)) {
header('HTTP/1.1 400 Bad Request');
header('Content-Type: application/json');
var_dump($data);
return;
}
$result = file_put_contents("activeUser.png", $data); //Where to save the image on your server
//var_dump($data);
echo($result);
$data 在发送到服务器上的 api 时是一个空字符串。
请帮忙,我一直在寻找几个小时。
谢谢你,罗伯特