每次用户更改其个人资料图片时,我都需要进行ajax调用。我可以成功调用ajax,但问题是没有任何内容发送到服务器。
<form action="#" enctype='multipart/form-data' id="avatar-upload-form">
<div class="form-group">
<label class="btn btn-default btn-file btn-block">
Upload new picture <input type="file" style="display: none;" name="profile_image" id="profile_image">
</label>
</div>
</form>
$('#profile_image').on('change', function() {
var formData = new FormData("#avatar-upload-form");
$.ajax({
url: '/users/upload/avatar',
type: 'POST',
dataType: 'json',
enctype: 'multipart/form-data',
cache:false,
processData: false,
contentType: false,
data: formData,
success: function(data) {
console.log(data);
},
error: function(error) {
console.log(error);
}
})
});
PHP代码
Route::post('/users/upload/avatar', function() {
dd(Request::file('profile_image')); // return empty array
});
答案 0 :(得分:1)
自己解决这个问题。我只需要像这样使用标准的javascript表单对象:
document.getElementById('form_id')[0]