将图像和数据从PHP发送到API

时间:2017-03-06 13:40:11

标签: php ajax

在我的应用程序中,用户可以在特定页面上传图像并填写多个字段。我使用AJAX POST将该数据发送到Web服务器(php)。使用FormData设置数据,如下所示:

var formData = new FormData();
formData.append('image', this.imageUploadField.files[0]);
formData.append('levelName', this.nameField.value);
formData.append('cost', this.monthlyCostField.value);
xhttp.open("POST", "http://example.com");
xhttp.setRequestHeader("Content-Type", "multipart/form-data");
xhttp.send(formData);

我使用$ _FILES检索临时图像服务器端。然后我需要将该图像和数据推送到REST API进行处理,但是我无法这样做。这是我通过Web服务器发送图像的方式。第一个问题是它到达API并且只能通过$ _POST全局检索,没有文件名,路径等......我不明白。

$data = file_get_contents('php://input');
// Setup http request
$options = ["http" =>
    ["method" => "POST",
        "header" => "Content-Type: multipart/form-data",
        "content" => $data,
        "header" => "Authorization: " . $_SESSION['token'] ] ];

// Call API
$apiResponse = file_get_contents($apiUrl, NULL, stream_context_create($options));

如何将图像和数据发送到API服务器。请注意我没有使用卷曲。还应注意,webserver和api目前都在我的localhost上运行。

更新:添加更多细节。在实现multipart / form-data之后,这就是我print_r($_POST);

时的样子
  

------ WebKitFormBoundaryI96wB7anw56O2g4M Content-Disposition:form-data; NAME = “图像”; filename =“blue_tier.png”内容类型:   图像/ PNG

     

二进制数据

     

------ WebKitFormBoundaryI96wB7anw56O2g4M Content-Disposition:form-data; NAME = “levelName”

     

测试名称   ------ WebKitFormBoundaryI96wB7anw56O2g4M Content-Disposition:form-data;名称= “成本”

     

4.99

我似乎无法获取数据。 $ _POST ['levelName']例如为null。

0 个答案:

没有答案