分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

thinkphp的同步上传图片和异步上传图片

发布时间:2023-09-06 02:31责任编辑:蔡小小关键词:thinkphp上传图片

同步:

前台页面:

 ???????<div class="form-div"> ????????????<form action="{:url(‘index/i/edit_head_img_cl‘)}" enctype="multipart/form-data" method="post"> ???????????????<input type="file" name="image" accept="image/gif, image/jpg ,image/png"/> <br> ????????????????<p style="color:red">仅支持不大于5m,后缀为jpg,png,gif的图片</p> ???????????????<input type="submit" value="上传" /> ????????????</form> ????????</div>

后台页面:

 ???//处理头像修改 ???public function edit_head_img_cl(){ ?????//检验用户是否登陆,并获取user_id ?????if($this->check_log[‘ok‘] == ‘-1‘){ ???????$this->error($this->check_log[‘error‘]); ?????} ?????$user_id = $this->check_log[‘id‘]; ?????echo ‘1‘; ?????// 获取表单上传文件 例如上传了001.jpg ?????$file = request()->file(‘image‘); ?????echo ‘2‘; ?????// 移动到框架应用根目录/public/uploads/ 目录下 ?????if($file){ ?????????$info = $file->validate([‘size‘=>5242880,‘ext‘=>‘jpg,png,gif‘])->move(‘static/uploads/‘); ?????????if($info){ ?????????????// 成功上传后 获取上传信息 ?????????????// 输出 jpg/* ?????????????echo $info->getExtension(); ?????????????// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg ?????????????echo $info->getSaveName(); ?????????????// 输出 42a79759f284b767dfcb2a0197904287.jpg ?????????????echo $info->getFilename(); */ ?????????????$ing_url = $info->getSaveName(); ?????????????//把url写进头像 ?????????????$res = UserDB::update([‘id‘=>$user_id,‘head_img‘=>$ing_url]); ?????????????if(!$res){ ???????????????echo ‘系统故障,更换头像失败‘; ?????????????}else{ ???????????????echo ‘<script type="text/javascript">parent.location.reload();</script>‘; ?????????????} ?????????}else{ ?????????????// 上传失败获取错误信息 ?????????????echo $file->getError(); ?????????} ?????}else{ ???????echo request()->post(‘image‘); ?????} ???}

异步:

前台页面:

 ???????????????????????????<tr> ???????????????????????????????<td>头像(异步上传):</td> ???????????????????????????????<td> ???????????????????????????????????{if $user.head_img == ‘‘} ???????????????????????????????????????<img src="__STATIC__/uploads/{$site_setup.default_img}" style="width: 50px;height: 50px;" class="head-img"> ???????????????????????????????????{else/} ???????????????????????????????????????<img src="__STATIC__/uploads/{$user.head_img}" style="width: 50px;height: 50px;" class="head-img"> ???????????????????????????????????{/if} ???????????????????????????????</td> ???????????????????????????????<td> ???????????????????????????????????<input type="file" multiple="multiple" id="inputfile" name="" class="photo"> ???????????????????????????????????????????????????????????????????</td> ???????????????????????????</tr>
 ???//图片异步上传 ???$("#inputfile").change(function(){ ???????console.log($(this).val()); ???????/*alert(1);*/ ???????var file = $(‘#inputfile‘)[0].files[0]; ???????var data = new FormData(); ???/* ???console.log($(‘#inputfile‘));*/ ???????data.append(‘image‘, file); ????????$.ajax({ ???????????url:"{:url(‘index/i/edit_head_img_cl_yb‘)}", /*去过那个php文件*/ ???????????type:‘POST‘, ?/*提交方式*/ ???????????data:data, ???????????dataType: "json", ???????????cache: false, ???????????contentType: false, ???????/*不可缺*/ ???????????processData: false, ????????/*不可缺*/ ???????????mimeType: "multipart/form-data", ???????????success:function(data){ ?????????????????if(data.ok == ‘1‘){ ???????????????????//把头像换成新的 ???????????????????$(".head-img").attr("src","__STATIC__/uploads/"+data.url); ???????????????} ?????????????????????alert(data.message); ???????????}, ???????????error:function(data){ ???????????????alert(‘上传出错‘); ???????????} ???????}); ???????});

后台页面:

 ???//处理头像修改(异步) ???public function edit_head_img_cl_yb(){ ?????//检验用户是否登陆,并获取user_id ?????if($this->check_log[‘ok‘] == ‘-1‘){ ???????return [‘ok‘=>‘-1‘,‘message‘=>$this->check_log[‘error‘]]; ?????} ?????$user_id = $this->check_log[‘id‘]; ?????// 获取表单上传文件 例如上传了001.jpg ?????$file = request()->file(‘image‘); ?????// 移动到框架应用根目录/public/uploads/ 目录下 ?????if($file){ ?????????$info = $file->validate([‘size‘=>5242880,‘ext‘=>‘jpg,png,gif‘])->move(‘static/uploads/‘); ?????????if($info){ ?????????????// 成功上传后 获取上传信息 ?????????????// 输出 jpg/* ?????????????echo $info->getExtension(); ?????????????// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg ?????????????echo $info->getSaveName(); ?????????????// 输出 42a79759f284b767dfcb2a0197904287.jpg ?????????????echo $info->getFilename(); */ ?????????????$ing_url = $info->getSaveName(); ?????????????//把url写进头像 ?????????????$res = UserDB::update([‘id‘=>$user_id,‘head_img‘=>$ing_url]); ?????????????if(!$res){ ???????????????return [‘ok‘=>‘-1‘,‘message‘=>‘系统故障,更换头像失败‘]; ?????????????}else{ ????????????????return [‘ok‘=>‘1‘,‘message‘=>‘上传成功!‘,‘url‘=>$ing_url]; ?????????????} ?????????}else{ ?????????????// 上传失败获取错误信息 ?????????????return [‘ok‘=>‘-1‘,‘message‘=>$file->getError()]; ?????????} ?????}else{ ???????return [‘ok‘=>‘-1‘,‘message‘=>‘没有接收到图片!‘]; ?????} ???}

thinkphp的同步上传图片和异步上传图片

原文地址:https://www.cnblogs.com/cl94/p/10311855.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved