我正在尝试使用Laravel上传文件,但是控制器中的请求始终返回null。 我认为我的问题是发送到控制器的JSON。
我这样称呼我的控制器:
$request->file('myimage')->store('upload');
// error Call to a member function store() on null
$request->file('myimage')->isValid();
// error Call to a member function isValid() on null
这是我的代码:
$('#product_form').on('submit', function(event){
event.preventDefault();
$.ajax({
url:"{{ route('manageproduct.addproduct') }}",
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
method:"POST",
data:new FormData($(this)[0]),
processData: false,
contentType: 'false',
dataType:"json",
success:function(data)
{
console.log(data);
}
})
这是我的控制者:
public function addproduct(Request $request)
{
return $request->file('myimage'); // return nothing
}
这是我的观点:
<form method="post" id="product_form" enctype="multipart/form-data" >
<div class="modal-body">
<meta name="csrf-token" content="{{ csrf_token() }}">
{{csrf_field()}}
<div class="form-group">
<div class="row">
<div class='col-sm-12'>
<label>Product Image</label>
</div>
</div>
<div class="row">
<div class='col-sm-5'>
<img src="{{ asset('images/noimage.png')}}" id='img-upload'/>
</div>
<div class='col-sm-7'>
<span class="btn btn-primary btn-file">
Browse… <input type="file" name="myimage" id="myimage">
</span>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<input type="submit" name="submit" id="action" value="Add" class="btn btn-info" />
</div>
</form>