我正在使用ajax在Laravel上传照片。 URL工作正常但数据未在控制器中接收功能。
HTML代码
<input type="file" id="photo_input">
Ajax / JQuery代码
$('#photo_input').change(function(){
var formData = new FormData('#photo_input');
$.ajax({
type:'POST',
url: home_url+'/upload-image',
data:formData,
cache:false,
enctype: 'multipart/form-data',
contentType: false,
processData: false,
success:function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
});
控制器中的PHP代码
public function uploadImage(){
$data = Input::all();
print_r($data);
}
来自控制器中的功能的响应
array(
);
我没有在html中使用<form>
标记,我想直接上传它。我需要添加<form>
代码吗?
有什么遗失的吗?
答案 0 :(得分:1)
$("#example-form").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
data: formData
});
});
答案 1 :(得分:0)
这样做:
<form method="POST" id="photoform" enctype="multipart/form-data">
<input type="file" id="photo_input">
</form>
因此,ajax请求应该像这样改变:
$('#photoform').submit(function(){
var fileupload = $('#photo_input').val();
$.ajax({
type:'POST',
url: home_url+'/upload-image',
data:{
file: fileupload,
},
cache:false,
enctype: 'multipart/form-data',
contentType: false,
processData: false,
success:function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
});