thinkphp结合ajax上传图片
2019-05-31 本文已影响0人
斯内克si
tp是5.1版本,js使用的jq
//前台JS
//formAdd为from表单ID
var formElement = document.querySelector("#formAdd");
var formdata = new FormData(formElement);
$.ajax({
url:"{:url('info/add')}",
type:'POST',
data:formdata,
async:false,
processData:false,
contentType:false,
success:function (res) {
// console.log(res);
// return ;
if (res.code==1){
//toastr.success(res.msg, '正在跳转到列表页面...');
window.location.href=res.url;
} else{
//$('#divInfo').toggleClass('sk-loading');
// toastr.error( res.msg);
alert(res.msg);
}
}
});
后台代码
//接受普通数据
$data = input('param.');
//手动判断是否提交图片
if (!empty($_FILES['file']['name'])){
//使用TP的request,接收图片
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('file');
// 移动到框架应用根目录/uploads/ 目录下
$info = $file->rule('date')->validate(['size'=>10485760,'ext'=>'jpg,jpeg,png,gif'])->move( '../public/uploads/');
if($info){
// 成功上传后 获取上传信息
$data['banner'] = $info->getSaveName();
}else{
// 上传失败获取错误信息
return $this->error('上传图片失败!'.$file->getError());
}
}