【发布时间】:2017-10-08 03:19:18
【问题描述】:
我在一个页面中有这个表单:
<div class="card-block">
{!! Form::open(array( 'autocomplete' => 'off', 'id' => 'AddModel', 'url' => 'model/useradd', 'files' => true)) !!}
<div class="form-group">
<label for="picture">Picture</label>
@if( (new Jenssegers\Agent\Agent)->isMobile() )
{!! Form::file('image', ['id' => 'modelpic', 'accept' => 'image/*', 'capture' => 'camera']) !!}
@else
{!! Form::file('image', ['id' => 'modelpic']) !!}
@endif
<br/>
</div>
<div id="imagePreview" style="display: none;"></div> /** here I show preview of the image through JS */
<div class="form-group">
{!! Form::submit('Submit', array('id' => 'AddBtn', 'class' => 'btn btn-default' )) !!}
{!! Form::close() !!}
</div>
在我的控制器中:
public function preview(Request $request)
{
dd($request->file('image'));
}
倾销结果=NULL
我不明白这里有什么问题。我在另一个正常工作的页面中有一个相同的表单。
通过验证请求,我收到错误“需要图像”
$this->validate($request, [
'image' => 'required|mimes:jpeg,jpg,png,gif|image|image_size:>=640'
]);
新信息:
javascript一定有问题,因为删除它控制器可以正常工作:
这是JS
jQuery(function ($) {
$(document).ready(function () {
$("body").on("submit", "#AddModel", function (e) {
var form = $(this);
$.ajax({
url: form.prop('action'),
type: 'post',
dataType: 'json',
data: $(this).serialize(),
success: function (data) {
console.log(data);
},
error: function (textStatus) {
{
var json = JSON.parse(textStatus.responseText);
console.log (json);
}
}
});
e.preventDefault();
});
});
});
已解决,谢谢@sagar
jQuery(function ($) {
$(document).ready(function () {
$("body").on("submit", "#AddModel", function (e) {
var form = $(this);
var postData = new FormData($("#AddModel")[0]);
$.ajax({
type:'POST',
url:form.prop('action'),
processData: false,
contentType: false,
data : postData,
success:function(data){
console.log(data);
},
error: function (textStatus) {
{
var json = JSON.parse(textStatus.responseText);
console.log (json);
}
}
});
e.preventDefault();
});
});
});
【问题讨论】:
-
试试改成
dd($request->file('modelpic')); -
也在验证使用modelpic
-
modelpic 是这里的 div 的 ID
<input id="modelpic" name="image" type="file">.. 无论如何,名称是“image”,根据您的建议,modyfing 没有任何变化 -
删除 files => true 并告诉我们它是否出现使用 $request->input('file')
-
当您尝试进行预览而不是存储时的问题。不是吗?
标签: php forms image laravel submit