使用Laravel 5.1和ajax

时间:2015-11-14 16:57:57

标签: php jquery ajax laravel file-upload

我和laravel合作了几天,我试图上传表格。当您上传文件时,用户不应该被重定向到任何页面,但它应该显示在同一页面上,例如:Success。所以这就是形式:

            <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页面。而且我不知道该怎么做。你能帮忙吗

1 个答案:

答案 0 :(得分:0)

默认情况下,当您点击类型为form的{​​{1}}时,button会将您重定向到操作的网址。但是,您可以通过在submit脚本中添加event.preventDefault()来阻止此事件。

js

完成!