Input :: file () возвращает значение null Laravel

Я писал сценарий загрузки, и хотя я использую встроенную функцию Laravel в функции Input :: file (), она все равно возвращает null. Я собираюсь опубликовать свой код Home Controller.

public function handleUpload() { $user = Auth::user(); $username = $user->username; $userId = $user->id; $path_to_users = "users"; $user_profile_img = 'users/'.$username.$userId.'/'.$username.'image001.jpg'; $user_path_profile = "users/$username$userId"; $user_image_name = $username.'image001.jpg'; if(file_exists($path_to_users)) { if(file_exists("$user_path_profile")){ $file = Input::file('profile')->move("$user_path_profile/", $user_image_name); } else { mkdir("$user_path_profile"); $file = Input::file('profile')->move("$user_path_profile/", $user_image_name); } } else { mkdir("users"); mkdir("$user_path_profile"); $file = Input::file('profile')->move("$user_path_profile/", $user_image_name); } } 

Когда я умираю (var_dump (Input :: file ('profile'))) возвращает null, что означает, что он в основном не принимает в моем файле как фактический файл. Когда я умираю (var_dump (Input :: get ('profile')), он возвращает имя изображения, означающее, что мой скрипт загрузки работает, но бэкэнд Laravel не работает. Это правда, или я просто что-то пропустил?

Вот моя форма HTML:

 @if($user->id == $userProf->id) <div class="fileUpload button-success pure-button"> <span>Upload</span> <form action="{{action('HomeController@handleUpload')}}" method="POST" enctype="multipart/form-data"> <input type="file" name="profile" class="upload" /> </form> </div> @endif 

У меня была такая же проблема в нормальной форме. Я забыл добавить:

 enctype="multipart/form-data" 

У меня была такая же проблема, и я понял, что я что-то забыл в форме. Используйте встроенные формы laravel, так как он автоматически добавит защиту CRSF (см. http://laravel.com/docs/html). В любом случае – вам нужно добавить 'files' => true в начало формы – так, например, в шаблоне клинка он может выглядеть так:

 {{ Form::open( array('route' => 'admin.store', 'class'=>'form-horizontal', 'files' => true)) }} {{Form::file('file')}} {{ Form::submit('Submit', array('class' => 'btn btn-info')) }} {{ Form::close() }} 

Глядя на ваш код, он должен работать, поэтому, похоже, у вас есть проблема во всем, что может быть даже в вашем представлении. Я только что построил два маршрутизатора, чтобы проверить его здесь:

 Route::post('file', function() { echo "<pre>"; var_dump(Input::file('profile')); echo "</pre>"; }); Route::get('upload', function() { return Form::open(array('url' => '/file', 'files' => true)) . Form::file('profile') . Form::submit('upload'); }); 

Вы можете использовать их в качестве базовой линии, чтобы шаг за шагом заставить вашу работу работать.