Проводка multipart / form-data из формы Angular в PHP - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь опубликовать 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» , но это, похоже, не помогло.

Любое указание или дополнительный вклад будут очень признательны.

...