Laravel не может получить доступ к FormData из запроса HTTP POST? - PullRequest
0 голосов
/ 29 июня 2018

У меня возникают проблемы при получении значений из моего запроса, когда я устанавливаю тип контента как multipart / form-data , но когда я устанавливаю тип контента как application / x-www -form-urlencoded все работает как положено. Значения кажутся пустыми.

Запрос, который я отправил через Почтальона: A Postman request I sent

Фрагмент API Laravel:

use Illuminate\Http\Request;

      ...

public function foo(Request $req){
    echo $req->get('some_key');
}

Я пытался извлечь значения через $ req-> get ('key_name') , $ req-> key_name , но безрезультатно. Вызов метода $ req-> all () дает мне массив с правильным содержимым, но у меня также возникают проблемы с извлечением значений из него, есть ли более простой способ добиться этого? Заранее спасибо.

1 Ответ

0 голосов
/ 29 июня 2018

При использовании multipart/form-data установите действие на PUT или PATCH и обязательно используйте сторону объекта FormData клиента:

let Data = new FormData();

// using vuejs as an example of appending files.
Data.append( 'your_file', this.$refs.input.files[0], this.$refs.input.files[0].name ); 
Data.append('_method', 'PATCH');

axios.post('/api/foo', Data ).then( Response => { 
   // handle success
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...