先上代码(前)
function jqSubmit() {
var file_obj = document.getElementById('pic').files[0];//注意这里的写法,因为files是原生的js对象才有的,所以要用原生的选择器选取该对象(就是input标签)。如果没上传文件,file_obj就是undefined
var fd = new FormData();//创建一个表单对象fd,ajax传值就传这个对象
fd.append('username', '用户名');//向fd里面添加另外一个参数
//如果不传图片,只需if判断一下即可
if (typeof(file_obj) != 'undefined') {
fd.append('pic', file_obj);//向fd里面添加一个文件(就是我们要传的图片file_obj)
}
fd.append('pic', file_obj);
$.ajax({url:'/upload_file/',
type:'POST',
data:fd,//传值就传fd对象了
processData:false, // 告诉jQuery不要处理数据
contentType: false, // 告诉jQuery不要设置contentType
//这儿的三个参数其实就是XMLHttpRequest里面带的信息。
success:function (res) {
//这里处理后台返回的res
}
})
}
后台
//添加文章
public function add()
{
if (request()->isPost()) {
$data = request()->post();
$data['create_time'] = time();
if (!empty($_FILES['pic']) && $_FILES['pic']['size']>0) {
$data['pic'] = $this->upload('pic');
}
$res = $this->articleModel
->insert($data);
if ($res) {
//添加成功
echo 1;
} else {
//添加失败
echo 0;
}
} else {
return view();
}
}