我的laravel ajax应用程序中存在问题,
我无法通过ajax POST上传图片/文件。
这是我的代码。
的Ajax ..
/*Add new catagory Event*/
$(".addbtn").click(function(){
$.ajax({
url:'add-catagory',
data:{
logo:new FormData($("#upload_form")[0]),
},
dataType:'json',
async:false,
type:'post',
processData: false,
contentType: false,
success:function(response){
console.log(response);
},
});
});
/*Add new catagory Event*/
刀片模板......
<form enctype="multipart/form-data" id="upload_form" role="form" method="POST" action="" >
<div class="form-group">
<label for="catagry_name">Name</label>
<input type="hidden" name="_token" value="{{ csrf_token()}}">
<input type="text" class="form-control" id="catagry_name" placeholder="Name">
<p class="invalid">Enter Catagory Name.</p>
</div>
<div class="form-group">
<label for="catagry_name">Logo</label>
<input type="file" class="form-control" id="catagry_logo">
<p class="invalid">Enter Catagory Logo.</p>
</div>
</form>
</div>
<div class="modelFootr">
<button type="button" class="addbtn">Add</button>
<button type="button" class="cnclbtn">Reset</button>
</div>
</div>
控制器..
public function catadd(){
if (Input::hasFile('logo'))
{
return "file present";
}
else{
return "file not present";
}
}
路线..
Route::post('add-catagory',['as'=>'catagory_add','uses'=>'MastersController@catadd']);
我的代码中有什么错误???
我无法在laravel控制器中获取文件信息..
我如何解决这个问题......?
答案 0 :(得分:26)
要改变两件事:
更改您的js文件:
data:{
logo:new FormData($("#upload_form")[0]),
},
要:
data:new FormData($("#upload_form")[0]),
因为您想发送整个表单。
在你的HTML中
为文件输入字段添加名称
<input type="file" class="form-control" id="catagry_logo">
要:
<input type="file" name="logo" class="form-control" id="catagry_logo">
答案 1 :(得分:2)
由于dataType:'json'
,它对我不起作用。如果有人收到错误,请删除dataType:'json'
。
答案 2 :(得分:1)
检查控制器发布时的内容:
echo dd(Input::all());
检查php中的文件对象。这在PHP中:
$_FILES
Request::file("logo");
是的,您还没有真正发布任何数据?表格真的贴出来了吗?