Попробуйте с этим:
$.ajax({
url: "photo-upload",
method:"POST",
data: new FormData(this),
// IF YOU WANT TO USE PROGRESS
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
// FUNCTIONS
myXhr.upload.addEventListener('progress', progress, false);
myXhr.addEventListener("load", complete, false);
myXhr.addEventListener("error", error, false);
myXhr.addEventListener("abort", abort, false);
}
return myXhr;
},
dataType:'JSON',
contentType: false,
cache: false,
processData: false,
// IF SUCCESS
success:function(data)
{
console.log(data);
}
});
2 - В вашем контроллере:
protected function upload(Request $request) {
// UPLOAD YOUR FILE HERE & INSERT DATA TO DATABASE
$path = Storage::putFile('files', $request->file('photo')); // UPLOAD AND GET PATH
// RETURN JSON DATA
return response()->json([
'file' => $path
]);
}
, если вы хотите использовать прогресс или любое сообщение во время загрузки , это поможет:
function progress(event){
var percent = (event.loaded / event.total) * 100;
var num = Math.round(percent);
// SET THIS TO ANY DIV WITH JQUERY
}
function completeHandlerHome(event){
// IF UPLOAD COMPLETED
}
function errorHandlerHome(event){
// IF IS ERROR
}
function abortHandlerHome(event){
// IF IS ABORTED
}
Это работа для меня :)