Как отправлять JSON данные вместе с файлом на PHP сервер?

110
18 июля 2021, 06:00

У меня есть клиентская часть в виде файла profile.html и серверная - api.php. Дело в том, что скрипт в api.php имеет много функций, поэтому для идентификации идёт приём с клиента данных формата JSON (пример: { "query": "profile_get_data" }).
Я знаю, что у PHP есть $_FILES[ ] и пр. подобные глобальные переменные для фалов, но если я просто пошлю файл, то мне в ответ прилетит { "code":"1", "text": "Неизвестный запрос" }. Поэтому на сервер помимо файла нужно отправить { "query": "avatar_upload" } и сам файл. Подскажите, как я смогу реализовать эту функцию?

Answer 1

Одновременно отправить и JSON данные, и файл не получится, насколько я знаю.

Самый простой вариант - закодировать файл в base64 и положить в одно из полей JSON. На сервере, соответственно, воспользоваться функцией base64_decode.

Если нужно загружать именно файл, то придется модифицировать API, как вариант сделать GET-параметр, по которому api.php будет определять, что идет загрузка файла (?query=upload_file), либо сообще сделать отдельный ендпоинт (в вашем случае, видимо, отдельный файл вроде upload.php) для загрузки файлов.

READ ALSO
доступ к php файлам по прямой ссылке

доступ к php файлам по прямой ссылке

На сайте есть php файлы, доступ к которым делается через iframeКак можно запретить доступ к ним по прямой ссылке?

112
ListView: обновление данных сбивает ChekBox

ListView: обновление данных сбивает ChekBox

Есть ListView состоящий из CheckBoxПихаю в него ArrayList

237
Удаляется ли база данных после скачивания обновлений на андроид с Play Market?

Удаляется ли база данных после скачивания обновлений на андроид с Play Market?

Подскажите, удаляется ли база данных или вообще с ней что то происходит после принятия обновлений с плей маркета на андроиде? И какие вообще...

197