Загружайте файлы вместе с данными, используя REST API - PullRequest
0 голосов
/ 23 мая 2018

Я создал API in PHP для сохранения данных формы в базе данных.API будет использоваться как для веб-приложений, так и для мобильных приложений.API получает данные в JSON и отправляет ответ только в JSON.Я использую PHP CURL для вызова API, здесь не будет звонить AJAX.

API (employee-registration.php)

<?php
    $params = file_get_contents('php://input');     // Input stream

    // Set initial values
    $salutation = $first_name = $last_name = $email = "";

    // Extract data
    $json = json_decode($params);

    $salutation         = trim($json->salutation);
    $first_name         = trim($json->first_name);
    $last_name          = trim($json->last_name);
    $email              = trim($json->email);

    // Do the validation and save data in database
    // Then send response in JSON

    $obj = new stdClass();
    $obj->status = $status;
    $obj->message = $message;
    $obj->errors = $errors;
    echo json_encode($obj);
?>

API вызова с использованием CURL

<?php
    $site_path = "http://www.mywebsite.com/";

    $postData = array(
        'salutation'    => 'mr',
        'first_name' => 'John',
        'last_name' => 'Pinto',
        'email' => 'test@website.com'
    );
    $postData = json_encode($postData);
    $ch = curl_init();  
    $url = $site_path.'path/to/api/employee-registration.php';
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_POST, count($postData));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    $output=curl_exec($ch);
    curl_close($ch);

    echo $output;
?>

Все вышеперечисленное работает отлично, я отправляю данные JSON в API и получаю данные JSON из API.Но что, если есть файл со всеми другими данными, скажем profile_picture.Как я могу изменить API, чтобы он мог получать данные в формате JSON из Web и Mobile APP вместе с файлом?Ajax-вызов здесь не разрешен, я должен использовать CURL для Web.пожалуйста помогите

...