发布表单时无法查看图像数据

时间:2015-06-11 06:40:42

标签: php image laravel-5 ajax-upload

问题:无法查看文件图片上传数据。 返回null

我试图发布广告,我希望看到我发布的数据

所以我的表格看起来像这样:

{!! Form::open(['data-remote', 'class' => 'form-vertical', 'route' => 'dashboard.ad.create', 'files' => true, 'id' => 'createAd']) !!}

            <div class="cover_photo">
                {!! Form::label('cover_photo', 'Cover Photo') !!}

                {!! Form::file('cover_photo') !!}
            </div>

{!! Form::close() !!}

这是有问题的字段,文件表单字段名为 cover_photo

我的表单请求类在rules数组中有以下内容

'cover_photo' => 'image',

我正在使用ajax发布表单。我在控制器中的所有操作都是

public function postStoreAd(PostAnAddRequest $request) {
    dd($request->all());
}

奇怪的是我获得了所有其他表单字段数据。除 cover_photo 外 事实上,当我尝试执行以下操作时,我得到 null

dd($request->file('cover_photo')); // return null

我确保我正在使用

'files' => true, // In my Form::open()

请帮助并谢谢你:)

1 个答案:

答案 0 :(得分:0)

所以在我的jquery中,我使用了 data.serialize(),由于article

,我发现它无法正常工作

使用此实施表格,我能够获得所需的数据

var form = $(this);

var formdata = new FormData(form[0]); //form.serialize() wont work

form.find('div.alert').remove();

e.preventDefault();

var action = $(this).attr('action');

var method = $('input[name=_method]').val() || 'POST';

$.ajax({
    type: method,
    action: action,
    data: formdata, //form.serialize() wont work
    processData: false, // You need this
    contentType: false, // You need this
    dataType: 'json',
    success: function(data) {
        console.log(data);
    },
    error: function(data) {
        var errors = data.responseJSON;

        $.each(errors, function(key, value) {
            console.log(key + ' - ' + value);
            $('#' + key).after('<div class="alert alert-danger">' + value + '</div>');
        });

    }

});
相关问题