PHP REST API не принимает изображение при использовании заголовка («Content-Type: application/json»), но работает без изображений

header('Content-Type: application/json'); 
if ( isset($_POST['name']) && isset($_POST['mobile']) ){

    $biz_name = mysql_real_escape_string(trim($_POST['name']));
    $biz_phone = mysql_real_escape_string(trim($_POST['mobile']));   
    $biz_banner = $_FILES['imagebanner']['name'];
    $biz_banner_tmp = $_FILES['imagebanner']['tmp_name'];
    move_uploaded_file($biz_banner_tmp, "../profile_banner/$biz_phone.jpg");
    echo "acknowledgement";     
    exit();

}

я использую клиентскую службу postman rest, чтобы проверить это, если я выберу данные формы и использую ее, она не работает, но работает с x-www-form-urlencoded. я думаю, что застрял с header();

Что именно не работает? Кроме того, вы открыты для всех видов неприятных инъекций здесь. mysql_real_escape_string — это нет, который будет препятствовать тому, чтобы кто-то загрузил что-то злое. С помощью этого кода было бы довольно легко сделать с вашим сервером всевозможные ужасные вещи.

elixenide 27.01.2019 08:44

Я поддерживаю комментарий Эда Коттрелла и также думаю, что вы путаете запрос и ответ. Когда вы вызываете метод заголовка, вы изменяете ответ, тогда как установка для отправленных данных значения x-www-form-urlencoded выполняется на стороне запроса, поэтому на самом деле это не связано.

Jacob Rasmussen 27.01.2019 08:48

я пытаюсь обновить имя в таблице базы данных на основе номера телефона, поэтому я отправляю оба вместе с именем, я также хочу обновить изображение его профиля. поэтому ничего не происходит, когда я отправляю данные от почтальона и использую параметр form-data в теле.

Venkat Akula 27.01.2019 08:50

отклик-header, который вы отправляете туда, не имеет ничего общего с тем, как данные отправляются с вашего внешнего интерфейса/почтальона на эту конечную точку. Для форм с файлами вы обычно должны установить <form enctype = "multipart/form-data" ... >

Tobias K. 27.01.2019 08:51

Что сказал @JacobRasmussen. Значение в enctype вашего тега <form> должно быть application/x-www-form-urlencoded, как и в <form enctype = "application/x-www-form-urlencoded">. Это не имеет ничего общего с тем, что вы установили в этом вызове header.

elixenide 27.01.2019 08:51

да, мы можем добиться результата, отправив данные из тега формы, используя multipart/form-data. но нам нужно сделать остальные API для приложения Android, остальные API написаны на php, остальные API вызываются приложением Android. Итак, в php rest API, какой тип контента я должен упомянуть, кроме header('Content-Type: application/json'); я должен отправить текст типа ввода и файл.

Venkat Akula 27.01.2019 17:19
Стоит ли изучать 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 и хотите разрабатывать...
0
6
123
0

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