我在使用Laravel框架。如何使用ajax上传文件图像?
我必须使用Ajax来上传文件映像,但它的响应为Call to a member function getClientOriginalExtension() on null
。
表
<form action="{{ route('agent.hotel.image.gallery') }}" enctype="multipart/form-data" method="post" id="form_upload">
{{ csrf_field() }}
<input type="file" name="image_gallery" id="image">
</form>
脚本
$("#image").on('change', function() {
var image = $(this).val();
$.ajax({
method: 'POST',
url: '{{ route('agent.hotel.image.gallery') }}',
data: { image_gallery: image, '_token': '{{ csrf_token() }}' },
success: function (data) {
console.log(data);
}
});
});
控制器
// Image Gallery
$image = $request->file('image_gallery');
$filename = md5(time()) . '.' . $image->getClientOriginalExtension();
$save = public_path('/hotel_picture/' . $filename);
//Move file upload to public folder
Image::make($image)->save($save);
任何人都可以帮助吗?或者有其他方法来做到这一点?
'.VAL()'返回文件的假路径,而不是'File'对象,可以使用''元素的'.files'属性来获得'File'对象。您的服务器似乎期望''image_gallery'','File'对象的key,value对' – guest271314
您可能必须使用FormData()传递图像,通过ajax – Rasclatt