2016-06-30 4 views
3

Я пытаюсь загрузить файл, но он не работает, когда запрос приземляется на контроллер. С ошибкой я имею в виду, что если я пытаюсь $request->hasFile("filename") всегда возвращает false.Входной файл в laravel 5.2?

Есть ли определенное поле, которое я должен указать в представлении?

Это фрагмент из представления:

<body> 
    <form action="{{url('dev/tester')}}" method="POST"> 
     {{csrf_field()}} 
     <input type="file" name="file"> 
     <button type="submit">Test</button> 
    </form> 
</body> 

А вот контроллер

class Tester extends Controller 
{ 
    public function index(Request $request) 
    { 
     if($request->hasFile('file')) 
     { 
      dd('Got the file'); 
     } 

     dd('No file'); 
    } 

    public function testView() 
    { 
     return view('tests.file_upload'); 
    } 
} 

Я всегда получить возвращается 'Нет файла'.

Любой ключ? Я даже проверял php.ini, чтобы узнать, существует ли ограничение по размеру, но все установлено на 32M в качестве параметров по умолчанию MAMP ...

+6

вы не посылающая ENCTYPE = «многочастный/из-данных» от вас от –

+0

какого позора! спасибо @Imtiaz Pabel! Это те ошибки, которые заставляют вас потерять целый день! : D Если вы хотите ответить на вопрос, я буду голосовать за него – Caius

+0

Я добавил свой ответ –

ответ

2

Возможно, вы забыли добавить ENCTYPE = «многослойные/форму-данные» в форме

1

Добавьте enformype = "multipart/from-data" в вашу форму, то это должно сработать!

+0

Как я уже говорил в предыдущем комментарии, это такое прощение, которое помогает вам потерять целый день (иронично): D Спасибо! – Caius

+0

: D Я знаю, что эти Erros могут не спать в течение многих дней :) – linx

2

Вы должны позволяет закачке к вашей форме,

есть 2 способа сделать это:

  1. Используя HTML

    <form action="{{url('dev/tester')}}" method="post" enctype="multipart/form-data"> 
    
  2. Используя Laravel Форму & HTML (https://laravelcollective.com/docs/5.2/html)

    {!! Form::open([ 'action' => url('dev/tester'), 'method' => 'post', 'files' => true ]) !!} 
        // Your form 
    {!! Form::close() !!} 
    

Это должно работать как очарование!