【发布时间】:2016-02-16 02:35:10
【问题描述】:
我正在使用 laravel 几天,我正在尝试制作上传表单。当您上传文件时,用户不应该被重定向到任何页面,但它应该显示在同一页面上,例如:成功。所以这是表格:
<form enctype="multipart/form-data" id="upload_form" role="form" method="POST" action="{{ URL::to('upload') }}" >
<label>Upload</label>
<input type="file" name="file" /><br/>
<input class="upload_button" name="submit" type="submit" value="submit" />
<input type="hidden" value="{{ csrf_token() }}" name="_token" />
</form>
这是控制器
if(Input::hasFile('file')){
$file = Input::file('file');
$user = Auth::id();// !!!!вземи ID на потребителя и му го подай, за да бъде номер на главната му папка!!!!!!!!!!!!
$file->move('uploads/'.$user, $file->getClientOriginalName());
echo 'Success';
}
else {
echo 'Please select a file first';
}
JS:
$(document).ready(function(){
$(".upload_button").click(function(){
$.ajax({
url:'upload',
data:new FormData($("#upload_form")[0]),
dataType:"json",
async:false,
type:"post",
processData: false,
contentType: false,
success:function(response){
alert(response);
}
});
}); });
还有路线:
Route::post('upload', 'UploadController@upload');
我只是不想被重定向到 /upload 页面。我不知道该怎么做。你能帮忙吗
【问题讨论】:
-
也许你的表单是在点击
upload_button时提交的(因为它是submit类型的输入),所以表单会尝试执行其action属性中指定的操作?跨度> -
当我将 action 属性留空时,它会给我一个错误
MethodNotAllowedHttpException in RouteCollection.php in RouteCollection.php at RouteCollection->methodNotAllowed(array('GET', 'HEAD')) in RouteCollection.php at RouteCollection->getRouteForMethods(object(Request), array('GET', 'HEAD')) in RouteCollection.php at RouteCollection->match(object(Request)) in Router.php at Router->findRoute(object(Request)) in Router.php at Router->dispatchToRoute(object(Request)) in Router.php at Router->dispatch(object(Request)) in Kernel.php -
查看 DoanTran 的回答。这个想法不将
action留空(这会使您的表单只是重新加载当前页面,就好像您已经写了action="./"),而是为了防止表单执行正常操作。一旦阻止了正常操作,就可以将其留空。 -
@ghybs 我不知道为什么,但它仍然将我重定向到该网址:/
标签: php jquery ajax laravel file-upload