【问题标题】:Internal Server error during file uploading in laravel5.3在 laravel5.3 中上传文件时出现内部服务器错误
【发布时间】:2017-07-23 13:47:45
【问题描述】:

我正在尝试在 laravel 中上传文件。但每次我点击提交按钮时,它都会在控制台中显示内部服务器错误。我已经用 get 请求检查了死记硬背,以检查控制器功能是否正常工作并且工作正常。任何人都可以说是什么问题吗? 这是我的代码示例

路线代码

Route::post('/storefile','PublicationController@storeFile');

控制器

public function storeFile(Request $request){
        if($request->ajax()){
            echo "got";
        }
        else echo "not ajax";
    }

查看

@extends('layouts.app')
@section('stylesheet')
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <link type="text/css" href="/css/bootstrap-tagging.css" rel="stylesheet">
@endsection
@section('content')
    <div class="validation-system">
        <div class="validation-form">
            <form id="test-form" action="/storepublication" method="post" enctype="multipart/form-data" >
                {!! csrf_field() !!}           
                <div class="col-md-3 form-group1">
                    <label class="control-label">Upload Paper</label>
                    <input type="file" name="file" id="paper">
                </div>
               <div class="col-md-3 form-group1">
                    <input type="submit"  id="submit" name="submit" class="btn btn-primary" value="Add">
                </div>
            </form>
        </div>
    </div>
@endsection
@section('scripts')
    <script>
        $(document).ready(function() {
            $("#test-form").submit(function (event) {
                event.preventDefault();
                var file_data = $('#paper').prop('files')[0];
                var form_data = new FormData();
                form_data.append('file', file_data);
                $.ajax({
                    url: "/storefile",
                    type: "post",
                    data: form_data,
                    processData: false,
                    contentType: false,
                    success: function (res) {
                        document.getElementById("response").innerHTML = res;
                    }
                });

            });

        });
    </script>

@endsection

【问题讨论】:

    标签: php jquery ajax laravel-5.3 server-error


    【解决方案1】:

    尝试替换这个

    var file_data = $('#paper').prop('files')[0];
    

    通过这个

    var file_data = $('#paper').files[0];
    

    【讨论】:

    • 不,没有帮助
    • 您是否使用控制器中的if($request-&gt;file('file')) 而不是if($request-&gt;ajax()) 进行检查
    • 是的,刚刚做了。不用找了。刚刚发现在服务器端我遇到了令牌不匹配异常。我也试过这个 data: { "_token": "{{ csrf_token() }}", "paper":form_data} 但仍然存在不匹配异常
    • 添加form_data.append('_token', $("input[name='_token']").val());
    猜你喜欢
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 2014-01-04
    • 2014-04-12
    • 2011-07-14
    • 2014-12-11
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多