Я загрузки изображения с помощью Laravel PHP и XMLHttpRequest() и я получаю следующее сообщение об ошибкеLaravel XMLHttpRequest MethodNotAllowedHttpException в RouteCollection.php линии 218:
MethodNotAllowedHttpException в RouteCollection.php линии 218
Далее мой Javascript код, который обрабатывает форму представляет:
$(document).on('submit','form',function(e){
e.preventDefault();
$form=$(this);
uploadImage($form);
});
function uploadImage($form){
$form.find(".progress-bar").removeClass("progress-bar-success").removeClass("progress-bar-danger");
var formdata=new FormData($form[0]);
var request=new XMLHttpRequest();
// progress event...
request.upload.addEventListener('progress',function(e){
var percent=Math.round(e.loaded/e.total * 100);
console.log('progress: '+percent);
$form.find('.progress-bar').width(percent+'%').html(percent+'%');
});
// progress completed load event
request.upload.addEventListener('load',function(e){
var percent=e.loaded/e.total * 100;
console.log('load: '+percent);
$form.find('.progress-bar').addClass('progress-bar-success').html('upload completed');
});
request.open('post','productImage.add');
request.send(formdata);
$form.on('click','.cancel',function(){
request.abort();
$form.find('.progress-bar').addClass('progress-bar-danger').removeClass('progress-bar-success').html('upload aborted...');
});
}
Это мой HTML форма, информация отправляется на PHP маршрут
<form role="form">
<label>Product Image:</label>
<input type="file" name="image">
<button type="submit" class="btn btn-info btn-sm upload">Upload</button>
<button type="button" class="btn btn-danger btn-sm cancel">Cancel</button>
<div class="progress progress-striped active">
<div class="progress-bar" style="width:0%"></div>
</div>
</form>
это мой маршруты файл:
Route :: группа ([ 'префикс' => 'админ'], функция () {
Route::get('/', function() {
return view('welcome');
});
Route::auth();
Route::get('/home', [
'uses'=>'[email protected]',
'as'=>'home'
]);
Route::post('/productAdd', [
'uses'=>'[email protected]',
'as'=>'product.add'
]);
Route::post('/productImageAdd', [
'uses'=>'[email protected]',
'as'=>'productImage.add'
]);
});
и, наконец, это мой код пост управления:
class productsController extends Controller
{
function add(Request $request){
$product= new product();
$product->productName=$request["name"];
$product->description=$request["description"];
$product->discount=$request["discount"];
$request->user()->products()->save($product);
return redirect()->route('home');
}
function addImage(Request $request){
print_r($request);
}
}
Как насчет защиты CSRF? Это на месте? –