Загружайте файлы вместе с данными с помощью REST API

Я создал 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);
?>

Call API using CURL

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

    $postData = array(
        'salutation'    => 'mr',
        'first_name' => 'John',
        'last_name' => 'Pinto',
        'email' => '[email protected]'
    );
    $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 из Интернета и мобильного приложения с файлом? Вызов Ajax здесь не разрешен, я должен использовать CURL для Интернета. пожалуйста помоги

Не совсем дубликат, но вот как вы отправляете данные ~ stackoverflow.com/q/9081079/283366. Что касается того, как получить / расшифровать запрос, возможно, вам просто нужно поэкспериментировать. Я не совсем уверен, какие данные будут в потоке php://input для запроса multipart/form-data

Phil 23.05.2018 06:32

Спасибо за ваш комментарий, но это не решило мою проблему

Shan Biswas 23.05.2018 17:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
668
0

Другие вопросы по теме