ThinkPhP3.2中图片添加,并生成缩略图
2017-06-26 11:57
309 查看
1:视图层:
<form class="layui-form" action="__APP__/Home/Goods/addgoodsDo" method="post" enctype="multipart/form-data"> <!-- 提示:如果你不想用form,你可以换成div等任何一个普通元素 -->
<div class="layui-form-item">
<label class="layui-form-label">人气值</label>
<div class="layui-input-block">
<input type="text" name="subcount" required lay-verify="required" placeholder="请输入人气值" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品名称</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入商品名称" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-block">
<select name="pcate" lay-filter="aihao">
<option value="">请选择</option>
<?php foreach($category as $key=>$value){ ?>
<option value="<?php echo $value['id']?>"><?php echo $value['name']?></option>
<?php }?>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品图片</label>
<div class="layui-input-block">
<input type="file" name="thumb">
</div>
</div>
2控制器:
第一种情况没有缩略图上传:
public function addgoodsDo()
{
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Uploads/';//上传根目录
$upload->savePath = './Home/Public/Uploads/'; // 设置附件上传目录 // 上传文件
$info = $upload->uploadOne($_FILES['thumb']);
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
//print_r($info);die;
$seller=$_SESSION['seller'] ;
$storeid=$seller['id'];
$subcount=I('post.subcount');//人气值
$title=I('post.title');//商品名称
$find=M('goods')->where(array("storeid"=>$storeid,"title"=>$title))->find();
if($find)
{
$this->error('您已经添加过该名称商品');
}
$pcate=I('post.pcate');//商品分类
4000
$marketprice=I('post.marketprice');
$productprice=I('post.productprice');
$credit=I('post.credit');
$unitname=I('post.unitname');
$description=I('post.description');
$displayorder=I('post.displayorder');
$thumb=$info['savepath'].$info['savename'];//获取图片信息
$data=[
'storeid'=>$storeid,
'subcount'=>$subcount,
'title'=>$title,
'pcate'=>$pcate,
'marketprice'=>$marketprice,
'productprice'=>$productprice,
'credit'=>$credit,
'unitname'=>$unitname,
'description'=>$description,
'thumb'=>$thumb,
'displayorder'=>$displayorder,
];
$result=M('goods')->add($data);
if($result)
{
$this->success('上传成功!');
}else{
$this->error('上传失败!');
}
}
}
第二种情况有缩略图上传:
public function addgoodsDo()
{
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Uploads/';//上传根目录
$upload->savePath = './Home/Public/Uploads/'; // 设置附件上传目录 // 上传文件
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
$upload->saveName = array('uniqid','');//设置上传文件规则
$info= $upload->upload();//执行上传方法
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
//print_r($info);die;
//获取上传文件信息
foreach ($info as $file){
$image = $file['savepath'].$file['savename'];
$size = $file['size'];
$dir= $file['savepath'];
$filename=$file['savename'];
}
//图片物理目录删除、改名图片用
$path= './Uploads'.$dir;
$img =new \Think\Image();//实例化
$img->open($path.$filename);//打开物理图片
//使用thumb方法生成缩略图并改名为:som_.$filename此时在项目根目录上
$img->thumb(150, 150)->save(som_.$filename);
//重新赋值方便处理
$oldfile=som_.$filename;
//rename()更改成新的文件名,此时还在项目根目录上
rename($oldfile, new_.$filename);
//重新赋值方便处理 new_.$filename为更名后新文件名
$newfile=new_.$filename;
//移动新文件到物理$path 目录最终生缩略图文件为:new_xxxx.jpg(后缀名不作更改只是在前加了new_)
rename($newfile,"$path/$newfile" );
//$thumb获取缩略图的地址和文件名用于写放数据库用
$thumb=$file['savepath'].$newfile;
$seller=$_SESSION['seller'] ;
$storeid=$seller['id'];
$subcount=I('post.subcount');//人气值
$title=I('post.title');//商品名称
$find=M('goods')->where(array("storeid"=>$storeid,"title"=>$title))->find();
if($find)
{
$this->error('您已经添加过该名称商品');
}
$pcate=I('post.pcate');//商品分类
$marketprice=I('post.marketprice');
$productprice=I('post.productprice');
$credit=I('post.credit');
$unitname=I('post.unitname');
$description=I('post.description');
$displayorder=I('post.displayorder');
//$thumb=$info['savepath'].$info['savename'];//获取图片信息
$data=[
'storeid'=>$storeid,
'subcount'=>$subcount,
'title'=>$title,
'pcate'=>$pcate,
'marketprice'=>$marketprice,
'productprice'=>$productprice,
'credit'=>$credit,
'unitname'=>$unitname,
'description'=>$description,
'thumb'=>$thumb,//数据库中表图片字段
'displayorder'=>$displayorder,
];
$result=M('goods')->add($data);
if($result)
{
$this->success('上传成功!');
}else{
$this->error('上传失败!');
}
}
}
<form class="layui-form" action="__APP__/Home/Goods/addgoodsDo" method="post" enctype="multipart/form-data"> <!-- 提示:如果你不想用form,你可以换成div等任何一个普通元素 -->
<div class="layui-form-item">
<label class="layui-form-label">人气值</label>
<div class="layui-input-block">
<input type="text" name="subcount" required lay-verify="required" placeholder="请输入人气值" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品名称</label>
<div class="layui-input-block">
<input type="text" name="title" required lay-verify="required" placeholder="请输入商品名称" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-block">
<select name="pcate" lay-filter="aihao">
<option value="">请选择</option>
<?php foreach($category as $key=>$value){ ?>
<option value="<?php echo $value['id']?>"><?php echo $value['name']?></option>
<?php }?>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品图片</label>
<div class="layui-input-block">
<input type="file" name="thumb">
</div>
</div>
2控制器:
第一种情况没有缩略图上传:
public function addgoodsDo()
{
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Uploads/';//上传根目录
$upload->savePath = './Home/Public/Uploads/'; // 设置附件上传目录 // 上传文件
$info = $upload->uploadOne($_FILES['thumb']);
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
//print_r($info);die;
$seller=$_SESSION['seller'] ;
$storeid=$seller['id'];
$subcount=I('post.subcount');//人气值
$title=I('post.title');//商品名称
$find=M('goods')->where(array("storeid"=>$storeid,"title"=>$title))->find();
if($find)
{
$this->error('您已经添加过该名称商品');
}
$pcate=I('post.pcate');//商品分类
4000
$marketprice=I('post.marketprice');
$productprice=I('post.productprice');
$credit=I('post.credit');
$unitname=I('post.unitname');
$description=I('post.description');
$displayorder=I('post.displayorder');
$thumb=$info['savepath'].$info['savename'];//获取图片信息
$data=[
'storeid'=>$storeid,
'subcount'=>$subcount,
'title'=>$title,
'pcate'=>$pcate,
'marketprice'=>$marketprice,
'productprice'=>$productprice,
'credit'=>$credit,
'unitname'=>$unitname,
'description'=>$description,
'thumb'=>$thumb,
'displayorder'=>$displayorder,
];
$result=M('goods')->add($data);
if($result)
{
$this->success('上传成功!');
}else{
$this->error('上传失败!');
}
}
}
第二种情况有缩略图上传:
public function addgoodsDo()
{
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Uploads/';//上传根目录
$upload->savePath = './Home/Public/Uploads/'; // 设置附件上传目录 // 上传文件
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
$upload->saveName = array('uniqid','');//设置上传文件规则
$info= $upload->upload();//执行上传方法
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
//print_r($info);die;
//获取上传文件信息
foreach ($info as $file){
$image = $file['savepath'].$file['savename'];
$size = $file['size'];
$dir= $file['savepath'];
$filename=$file['savename'];
}
//图片物理目录删除、改名图片用
$path= './Uploads'.$dir;
$img =new \Think\Image();//实例化
$img->open($path.$filename);//打开物理图片
//使用thumb方法生成缩略图并改名为:som_.$filename此时在项目根目录上
$img->thumb(150, 150)->save(som_.$filename);
//重新赋值方便处理
$oldfile=som_.$filename;
//rename()更改成新的文件名,此时还在项目根目录上
rename($oldfile, new_.$filename);
//重新赋值方便处理 new_.$filename为更名后新文件名
$newfile=new_.$filename;
//移动新文件到物理$path 目录最终生缩略图文件为:new_xxxx.jpg(后缀名不作更改只是在前加了new_)
rename($newfile,"$path/$newfile" );
//$thumb获取缩略图的地址和文件名用于写放数据库用
$thumb=$file['savepath'].$newfile;
$seller=$_SESSION['seller'] ;
$storeid=$seller['id'];
$subcount=I('post.subcount');//人气值
$title=I('post.title');//商品名称
$find=M('goods')->where(array("storeid"=>$storeid,"title"=>$title))->find();
if($find)
{
$this->error('您已经添加过该名称商品');
}
$pcate=I('post.pcate');//商品分类
$marketprice=I('post.marketprice');
$productprice=I('post.productprice');
$credit=I('post.credit');
$unitname=I('post.unitname');
$description=I('post.description');
$displayorder=I('post.displayorder');
//$thumb=$info['savepath'].$info['savename'];//获取图片信息
$data=[
'storeid'=>$storeid,
'subcount'=>$subcount,
'title'=>$title,
'pcate'=>$pcate,
'marketprice'=>$marketprice,
'productprice'=>$productprice,
'credit'=>$credit,
'unitname'=>$unitname,
'description'=>$description,
'thumb'=>$thumb,//数据库中表图片字段
'displayorder'=>$displayorder,
];
$result=M('goods')->add($data);
if($result)
{
$this->success('上传成功!');
}else{
$this->error('上传失败!');
}
}
}
相关文章推荐
- 上传图片 并生成缩略图 并添加文字水印
- c# 添加图片水印,可以指定水印位置+生成缩略图
- C#为图片添加水印,生成缩略图
- 图片操作:生成缩略图、添加水印、截取图片等
- c# 添加图片水印,可以指定水印位置+生成缩略图
- 生成高清缩略图; 添加图片、文字水印; 图片、文字水印透明
- 生成高清缩略图; 添加图片、文字水印; 图片、文字水印透明
- asp.net 生成缩略图、为图片添加文字水印、图片水印等功能
- 图片添加水印和生成缩略图
- jsp上传图片生成缩略图并将数据信息添加到数据库(转)
- 生成缩略图、为图片添加文字水印、图片水印的类
- c# 添加图片水印,可以指定水印位置+生成缩略图
- 图片操作:生成缩略图、添加水印、截取图片等
- c# 添加图片水印,可以指定水印位置+生成缩略图
- c# 添加图片水印,可以指定水印位置+生成缩略图
- asp.net生成缩略图,添加图片水印的类
- struts2实现上传文件、生成缩略图、添加文字和图片水印
- struts2上传文件、生成缩略图、添加文字和图片水印
- 解决thinkphp图片上传生成缩略图背景为黑色的问题
- FCKEditor 2.63 上传图片时,可按日期生成文件名、生成缩略图、添加水印