Я пытаюсь опубликовать multipart / form-data из моего приложения Ionic / Angular в свой PHP бэкэнд. Когда я отправляю форму и проверяю запрос, я вижу, что данные передаются как:
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="name"
Test Name
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="address"
1600 Pennsylvania Ave.
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="city"
Washington
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="state"
DC
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="zip"
12345
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="album"
1
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj
Content-Disposition: form-data; name="file"; filename="cdv_photo_012.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryNcAi8IDOJnPZ2jnj--
Данные формы собираются в моем приложении Ionic / Angular с использованием FormData
, а затем отправляются через this.http.post
запрос. Единственные дополнительные заголовки, которые я отправляю с моим почтовым запросом, - это токен авторизации.
В моем файле PHP я пытаюсь обработать данные, используя:
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With");
header("Content-Type: application/json; charset=utf-8");
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
$request_body = file_get_contents('php://input');
$post_data = json_decode($request_body, true);
echo json_encode($post_data);
}
Но , он просто возвращает значение null. Как я могу проанализировать данные, поступающие из моего приложения в бэкэнд PHP?
Я видел несколько сообщений об удалении Content-Type и установке Accepts на «application / json» , но это, похоже, не помогло.
Любое указание или дополнительный вклад будут очень признательны.