@Farrien
Tell me who

Как раскодировать php input после axios post?

var fd = new FormData();
			fd.append('file', this.file);
			fd.append('title', this.filename);
			fd.append('category', this.category);
			fd.append('action', 'add');
		//	fd.append('show_errors', '1');
			axios({
				url: '/admin/docs',
				method: 'post',
				headers: {
					'Content-Type': 'multipart/form-data'
				},
				data: fd,
			}).then(res => {
				console.log(res.data);
			//	location.reload();
			})
			.catch(function(){
				alert('Ошибка! Что-то упустили.');
				console.log('Upload fail');
			});


'Content-Type': 'multipart/form-data' я выставил, но $_POST все недоступен. Есть только данные в php://input
Это работало на тестах в OpenServer, но вот на виртуальном хостинге не хочет. Как получить поля и файл через php://input вообще? там не просто json и через json_decode не получается блин
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
@Farrien Автор вопроса
Tell me who
Все работает. Оказалось, что на VPS стояло ограничение на загрузку файлов в 2мб, поэтому не работало.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@granty
Согласно RTFM, php://input недоступен с типом содержимого enctype="multipart/form-data".

php://input это простой файл, данные из него читаются просто:
$buff = '';
$fp = fopen("php://input", "rb");
while (!feof($fp)) $buff .= fread($fp, 1024);
fclose($fp);

json должен присылаться с Content-type: application/json, и согласно RFC4627 он должен присылаться в Unicode (UTF-8 по умолчанию):
JSON text SHALL be encoded in Unicode. The default encoding is UTF-8.

Можно смотреть реальную кодировку json из заголовка, например Content-type: application/json; charset=utf-16), если присылается правильный заголовок. Можно и автодетектить кодировку по первым 4-м байтам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 22:00
500 руб./в час
24 апр. 2024, в 21:49
10000 руб./за проект