后台类
public function upload_img()
{
$file = request()->file('file');
if ($file == null){
exit(json_encode(array('code'=>1,'msg'=>'没有上传文件')));
}
//判断uploads目录是否存在
$dir = ROOT_PATH.'public/uploads/';
if (!is_dir($dir)){
mkdir($dir);
}
// 有图片 , 保存到一个目录下
$info = $file->move($dir);
$ext = strtolower($info->getExtension());
if (!in_array($ext,array('jpg','png','gif','jpeg'))){
exit(json_encode(array('code'=>1,'msg'=>'文件格式不支持')));
}
$img ="/uploads/". $info->getSaveName();
exit(json_encode(array('code'=>0,'img'=>$img,'msg'=>'上传成功')));
}
返回的是图片地址,如果需要预览 上传后提交表单需要加隐藏域,不能直接提交的src
layui.use(['layer','form','upload'],function(){
form = layui.form;
layer = layui.layer;
upload = layui.upload;
$ = layui.jquery;
var uploadInst = upload.render({
elem: '#img' //绑定元素
,accept:'images' //上传文件类型
,url: '{:url("upload/upload_img")}' //上传接口
,done: function(res){
//上传完毕回调
$('#pre_img').attr('src',res.img);
$('#pre_img').attr('title','点击预览');
$('input[name="img"]').val(res.img);
}
,error: function(){
layer.alert(res.msg,{icon:2});
}
});
图片
上传图片
当写了一个上传类时 ,传入参数直接调用 参考: https://blog.csdn.net/haibo0668/article/details/80799379
上传类
class Upload extends BaseController
{
//图片上传 调用上传前一定要确定有文件,否则会出错
public function image($file,$controller,$method)
{
$dir = ROOT_PATH.'public/uploads';
if (!is_dir($dir)){
mkdir($dir);
}
$info = $file->move($dir);
// $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
$ext = strtolower($info->getExtension());
if (!in_array($ext,array('jpg','gif','png','jpeg'))){
$this->error('图片格式不支持',"$controller/$method");
}
$res = "/uploads/".$info->getSaveName();
return $res;
}
}
调用控制器的写法,图片组件 参考: https://blog.csdn.net/shj_php/article/details/88287210
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?