Php 通过Ajax上传Laravel5文件
当我上传文件时显示一些错误。错误详细信息和文件内容如下所示。你能帮我检查一下并解决这个问题吗 错误Php 通过Ajax上传Laravel5文件,php,ajax,laravel,laravel-5,Php,Ajax,Laravel,Laravel 5,当我上传文件时显示一些错误。错误详细信息和文件内容如下所示。你能帮我检查一下并解决这个问题吗 错误 Whoops, looks like something went wrong. MethodNotAllowedHttpException in RouteCollection.php line 201: in RouteCollection.php line 201 at RouteCollection->methodNotAllowed(array('GET', 'HEAD
Whoops, looks like something went wrong.
MethodNotAllowedHttpException in RouteCollection.php line 201:
in RouteCollection.php line 201
at RouteCollection->methodNotAllowed(array('GET', 'HEAD')) in RouteCollection.php line 188
at RouteCollection->getRouteForMethods(object(Request), array('GET', 'HEAD')) in RouteCollection.php line 140
at RouteCollection->match(object(Request)) in Router.php line 746
at Router->findRoute(object(Request)) in Router.php line 655
at Router->dispatchToRoute(object(Request)) in Router.php line 631
at Router->dispatch(object(Request)) in Kernel.php line 236
etc
routes.php
Route::post('/ambition/update', [
'before' => 'csrf',
'as' => 'tagambitionupdate',
'uses' => 'TagambitionController@update'
]);
public function update(TagambitionRequest $request)
{
$userTagID = $request->hiddenid;
$file = $request->file('file');
dd($file);
}
<div class="tag-handler-ambition-response">
<form id="addForm" method="post" enctype="multipart/form-data"><span id="tag-ambition-append">Test</span><input name="file" type="file" id="file" ><input name="hiddenid" id="hiddenid" type="hidden" value='{{ $id }}' ><input type="hidden" name="_token" value="{{ csrf_token() }}"><button class="btn btn-default" id="submit" >Submit</button></form>
</div>
TagambitionController.php
Route::post('/ambition/update', [
'before' => 'csrf',
'as' => 'tagambitionupdate',
'uses' => 'TagambitionController@update'
]);
public function update(TagambitionRequest $request)
{
$userTagID = $request->hiddenid;
$file = $request->file('file');
dd($file);
}
<div class="tag-handler-ambition-response">
<form id="addForm" method="post" enctype="multipart/form-data"><span id="tag-ambition-append">Test</span><input name="file" type="file" id="file" ><input name="hiddenid" id="hiddenid" type="hidden" value='{{ $id }}' ><input type="hidden" name="_token" value="{{ csrf_token() }}"><button class="btn btn-default" id="submit" >Submit</button></form>
</div>
JS
$(document).ready(function() {
/* Upload files of ambition tags begin*/
$("#submit").click(function(){
alert('hai');
var form = $("#addForm")[0];
var formdata = new FormData(form);
formdata.append('file', 'file');
$.ajax({
url : "/ambition/update",
type: "POST",
data : formdata,
processData: false,
contentType: false,
success:function(data){
alert(data);
}
});
});
/* Upload files of ambition tags end*/
});
$("#addForm_"+response.id).submit(function(e){
e.preventDefault();
var form = $("#addForm_"+response.id)[0];
var formdata = new FormData(form);
formdata.append('file', 'file_'+response.id);
$.ajax({
url : "/ambition/update",
type: "POST",
data : formdata,
processData: false,
contentType: false,
success:function(data){
}
});
e.preventDefault();
});
fortend.blade.php
Route::post('/ambition/update', [
'before' => 'csrf',
'as' => 'tagambitionupdate',
'uses' => 'TagambitionController@update'
]);
public function update(TagambitionRequest $request)
{
$userTagID = $request->hiddenid;
$file = $request->file('file');
dd($file);
}
<div class="tag-handler-ambition-response">
<form id="addForm" method="post" enctype="multipart/form-data"><span id="tag-ambition-append">Test</span><input name="file" type="file" id="file" ><input name="hiddenid" id="hiddenid" type="hidden" value='{{ $id }}' ><input type="hidden" name="_token" value="{{ csrf_token() }}"><button class="btn btn-default" id="submit" >Submit</button></form>
</div>
提交测试
我终于得到了结果。我已将按钮单击功能更改为表单提交。请检查我下面的代码。我可以使用Laravel5和jQueryAjax上传文件而无需刷新页面
jS
$(document).ready(function() {
/* Upload files of ambition tags begin*/
$("#submit").click(function(){
alert('hai');
var form = $("#addForm")[0];
var formdata = new FormData(form);
formdata.append('file', 'file');
$.ajax({
url : "/ambition/update",
type: "POST",
data : formdata,
processData: false,
contentType: false,
success:function(data){
alert(data);
}
});
});
/* Upload files of ambition tags end*/
});
$("#addForm_"+response.id).submit(function(e){
e.preventDefault();
var form = $("#addForm_"+response.id)[0];
var formdata = new FormData(form);
formdata.append('file', 'file_'+response.id);
$.ajax({
url : "/ambition/update",
type: "POST",
data : formdata,
processData: false,
contentType: false,
success:function(data){
}
});
e.preventDefault();
});
能否在javascript脚本中执行
console.log(url)
?然后公布结果?你确定你发布的url正确吗?@Harry Geo,我的控制台显示错误“NetworkError:405方法不允许-”。我发布了正确的url这是请求失败的结果,我问了你的url?您确定要在http://yourdomain.com/ambition/update
再看看这个@HarryGeo,是的,发布url是正确的。Firebug网络显示-------------------25603393529504内容处理:表单数据;name=“hiddenid”28------------------25603393529504内容处理:表单数据;name=“_-token”wdqLkfj10vaj9efEV2dncm3v6E0KLw52ArQXbXCl---------------------------------------------25603393529504--