Documentation here
For files you have to use $request->file() (in your case $request->file('file'))
OR
Dynamically $request->file
Hi everyone,
I've got an error with Request in Laravel 5.3, it seems that $request->input doesn't work with file upload, meanwhile the old ways $request['file'] and dynamic $request->file still work very well. Do you have any idea why?
$file = $request->input('file'); // return null
HTML/JS
{{ csrf_field() }}
<input type="file" id="fileinput">
<script>
var UPLOADURL = 'route/uploadfile';
$("#fileinput").on("change", function(event) {
var file = event.target.files[0];
var fd = new FormData();
fd.append("file", file);
$.ajax({
type: 'POST',
url: UPLOADURL,
headers: { 'X-CSRF-Token': $('input[name="_token"]').val() },
cache: false,
processData: false,
contentType: false,
data: fd,
success: function(response) {
console.log(response);
},
error: function(error) {
// console.log(error['responseText']);
$(document.body).html(error['responseText']);
}
});
});
</script>
Controller: route/uploadfile
$fileName = 'test.jpg';
$file = $request->input('file'); // return null
//$file = $request['file']; //$file = $request->file; // OK
$file->move(config('app.paths.upload_dir'), $fileName);
return 'https://'.$_SERVER['HTTP_HOST'].config('app.paths.upload_url').$fileName;
Please or to participate in this conversation.