0

我是 Laravel 的新手。我正在使用 Bootstrap 文件输入插件在 Laravel 中上传多个文件。但是在我的代码中,uploadUrl 中的 url 没有被调用。这意味着不会将 ajax 调用发送到 laravel 后端控制器,也不会调用控制器方法。你能帮我解决这个问题吗?谢谢你。

代码

<div class="form-group">
<label class="col-sm-2 control-label required">FEATURED IMAGES</label>
<div class="col-sm-10">
<input id="featured-file" name="featured-file[]" type="file" multiple class="file-loading">
<p class="notice">Please use to upload 550px width x 670px height images for better view</p>
</div>
</div>

jQuery 代码

$("#featured-file").fileinput({  
        theme: 'fa',
        uploadAsync:true,
        uploadUrl:"{{ url('/news/uploadimgsaddmode') }}",
        uploadExtraData: function() {
           return {
              _token: '<?php echo csrf_token() ?>',
           };
        },            
        allowedFileExtensions: ['jpg', 'png', 'gif','jpeg'],
        overwriteInitial: false,
        maxFileSize:2000,
        maxFilesNum: 10
        }).on('fileuploaded', function(event, previewId, index, fileId) {
            console.log('File Uploaded', 'ID: ' + fileId + ', Thumb ID: ' + previewId);
        }).on('fileuploaderror', function(event, data, msg) {
            console.log('File Upload Error', 'ID: ' + data.fileId + ', Thumb ID: ' + data.previewId);
});


Laravel Controller Method

public function uploadimagesaddmode(Request $request){
        Session::put('uploaded_files','Hi');
        Session::save();
        return response()->json(['uploaded' =>'Hi']);
}

我使用了一些 html 代码来测试是否调用了控制器方法

<p>@if(Session::has('uploaded_files')) {{ Session::get('uploaded_files') }} @endif</p>

如果调用控制器方法,则应打印会话值。但是没有打印任何值。

4

1 回答 1

0

我找到了解决方案。感谢所有回答我问题的人:)

我编辑了 jQuery 代码。这是编辑过的。这个对我有用。

$(document).on("ready", function() {
        $("#featured-file").fileinput({  
            theme: 'fa',
            allowedFileExtensions: ['jpg', 'png', 'gif','jpeg'],              
            uploadUrl: "{{ url('news/uploadimgsaddmode') }}", 
            uploadExtraData: function() {
                return {
                    _token: '<?php echo csrf_token() ?>',

                };
            },
            uploadAsync:true,           
            overwriteInitial: false,
            maxFileSize:2000,
            maxFilesNum: 10,                       
        }).on("filebatchselected", function(event, files) {
            $("#featured-file").fileinput("upload");
        });
    });
于 2019-06-28T20:40:44.240 回答