尝试通过bluimp的jQueryFileUpload上传图片时遇到问题。
在我的路线中,我有这个:<form>
我的文件输入位于<input id="imageupload" type="file" name="image" multiple="" data-url="{{ url('admin/image/upload/members') }}" >
标记之外,因为它独立于表单:
$('#imageupload').fileupload({
dataType: 'json',
maxFileSize: 5000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
done: function (e, data) {
Members.handle_image(data);
}
});
我的jQuery函数指向data-url属性值。:
example.app/admin/members/create
奇怪的是,当我从example.app/admin/members/1/edit
调用此方法时,它可以正常工作,但当我尝试从Method not allowed
访问它时,我会得到405,Route::get('members/create', [
'uses' => 'MembersController@create', 'as' => 'admin/members/create'
]);
Route::get('members/{member}/edit', [
'uses' => 'MembersController@edit', 'as' => 'admin/members/edit'
]);
。
在这两种情况下,方法都是POST。
我创建和编辑URI的路线:
<input type="text" class="form-control" name="phone" id="phone" data-mask="999999999?9" />
我确定这是一件非常愚蠢的事情,我无法看到。
PS。我有一个Project资源,我也使用相同的路由和功能上传图像。它适用于两种情况(创建和编辑)。
有人有这个问题吗?
谢谢!
答案 0 :(得分:0)
HTTP 405表示不支持请求方法。
您的两条路线都会收听请求
Route::get('members/create', [
'uses' => 'MembersController@create', 'as' => 'admin/members/create'
]);
Route::get('members/{member}/edit', [
'uses' => 'MembersController@edit', 'as' => 'admin/members/edit'
]);
你确定你不想要一个或两个都要发布吗?
Route::post('members/create', [
'uses' => 'MembersController@create', 'as' => 'admin/members/create'
]);
Route::post('members/{member}/edit', [
'uses' => 'MembersController@edit', 'as' => 'admin/members/edit'
]);
答案 1 :(得分:0)
好的,我设法解决了这个问题,但我真的不明白它为什么不起作用。
在我的路线中,我有这个,其中ajax网址指向POST:
Route::post('image/upload/{folder}', 'ImageController@upload');
这不起作用。 我改成了:
Route::any('image/upload/{folder}', 'ImageController@upload');
现在它有效。
这很奇怪,因为在我的请求标题上我有POST方法,但是使用post(在路由中)我没有工作。