问题:无法查看文件图片上传数据。 返回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()
请帮助并谢谢你:)
答案 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>');
});
}
});