文件数据是服务器端的空白数组:Laravel 5.3

时间:2016-10-26 11:25:28

标签: laravel laravel-5 laravel-5.2 laravel-5.1

我正在尝试使用JQuery发布文件。以下是我的代码。

<script language="javascript">
    $(document).ready(function() {
        $('#frmUpdateProfile').on("submit", function(event) {
            event.stopPropagation(); // Stop stuff happening
            event.preventDefault(); // Totally stop stuff happening
            var data = {
                "FileName"      :   event.target.FileName.files,
                "_token"        :   "{!! csrf_token() !!}"
            };
            $.ajax({
                url:            '{{URL::route("UpdateProfile")}}',
                method:         "POST",
                async:          true,
                data:           JSON.stringify(data),
                processData:    false,
                contentType:    "application/json; charset=utf-8",
                success: function (msg) {
                    SuccessCallback(msg);
                },
                error: function (jqXHR) {
                    ErrorCallback(jqXHR);
                }
            });
        });
    });
</script>

我试过了processData: false,。在Js中进行调试时,您可以检查图像是否在数据中。以下是截图。

enter image description here

但是当我在Laravel中打印请求数据时,它会显示空白数组。

Html表单在这里

<form method="POST" 
        action="http://localhost:1234/AS6-Code/public/UpdateProfile" 
        accept-charset="UTF-8" 
        enctype="multipart/form-data"  
        id="frmUpdateProfile">

    <input name="_token" type="hidden" value="26KWkWdNqe5iOFE8VRBf1dRnL5xKxwN25jg3tAFW">
    <input type="hidden" name="_token" value="26KWkWdNqe5iOFE8VRBf1dRnL5xKxwN25jg3tAFW">
    <input multiple="1" name="FileName" type="file">
    <input class="btn btn-info" type="submit" value="Update">
</form>

我做错了吗?

2 个答案:

答案 0 :(得分:1)

尝试使用FormData发送您的请求:

var data = new FormData($('#frmUpdateProfile')[0]);

还将contentType设置为false:

contentType: false

同时更新

event.target.FileName.files  

event.target.FileName.files[0]

答案 1 :(得分:1)

event.target.FileName.files是一个FileList对象。我相信你需要event.target.FileName.files[0]