thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片)

news/2024/5/8 19:40:35/文章来源:https://blog.csdn.net/weixin_33721427/article/details/86130377

thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片)

项目地址

fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Website
https://github.com/fry404006308/BicycleEnterpriseWebsite

一、总结

 1、php标签中加原生php代码实现css(js)的标题过长截取的功能

 

 

二、要点

1、编程期间页面设计问题(框架+基本控件)

其实只需要html5中的那些基本控件就好啊,开始不需要样式,一开始又不要多复杂,一件事情一件事情的来做嘛

框架+基本控件

 

2、控制其它input标签的class对textarea同样有效

<textarea  class="form-control" name="" id="des" ></textarea>

很基础的界面,没有什么复杂样式,但是看起来还是一样的美观

 

 

3、控制器处理数据的时候只处理,不显示

 1 public function add(){
 2     if(request()->isPost()){
 3         
 4         return;
 5     }
 6     //将栏目信息显示回增加界面
 7     //catetree方法新增了栏目的level字段
 8     $modelCate=new ModelCate();
 9     $data=$modelCate->catetree();
10     $this->assign('data',$data);
11 
12     return view();
13 }

处理完数据直接return

 

4、直接模型对象.save添加数据倒是简单方便

 1 public function add(){
 2     if(request()->isPost()){
 3         $datain=input('post.');
 4         $modelArticle=new ModelArticle();
 5         if($modelArticle->save($datain)){
 6             $this->success('添加文章成功!!','article/lst');
 7         }else{
 8             $this->error('添加文章失败!!');
 9         }
10         // dump($datain);die;
11         return;
12     }
13     //将栏目信息显示回增加界面
14     //catetree方法新增了栏目的level字段
15     $modelCate=new ModelCate();
16     $data=$modelCate->catetree();
17     $this->assign('data',$data);
18 
19     return view();
20 }

 

 

5、上传文件两步操作

1 //2、获取传入的文件数据
2 if($_FILES['athumb']['tmp_name']){
3     // 获取表单上传文件 例如上传了001.jpg
4     $file = request()->file('athumb');
5     // 移动到框架应用根目录/public/uploads/ 目录下
6     $info = $file->move(ROOT_PATH . 'public' . DS . 'static/uploads/admin');
7     // 已经上传成功,我们要把文件的路径写进数据库
8     $data['athumb']='/static/uploads/admin/'.$info->getSaveName();
9 }

第一步:从表单获取文件的二进制数据

$file = request()->file('athumb');

第二步:将这个二进制数据写进服务器中,应该是用的io流

$info = $file->move(ROOT_PATH . 'public' . DS . 'static/uploads/admin');

 

6、php标签中加原生php代码实现css的标题过长截取的功能

 1 <tbody>
 2 {volist name='dataout' id='vo'}
 3     <tr>
 4         <td align="center">{$vo.aid}</td>
 5         <td ><?php echo mb_substr($vo['atitle'],0,9,'utf-8'); if(strlen($vo['atitle'])>9){echo '...';} ?></td>
 6         <td align="center">{$vo.athumb}</td>
 7         <td align="center">{$vo.aauthor}</td>
 8         <td align="center">{$vo.acateid}</td>
 9         <td align="center">
10             <a href="#" class="btn btn-primary btn-sm shiny">
11                 <i class="fa fa-edit"></i> 编辑
12             </a>
13             <a href="#" onClick="warning('确实要删除吗', '#" class="btn btn-danger btn-sm shiny">
14                 <i class="fa fa-trash-o"></i> 删除
15             </a>
16         </td>
17     </tr>
18 {/volist}    
19 </tbody>

1、php代码可以实现css(js)中的标题字符过长截取功能

2、php标签volist中可以套用原生php代码,并且可以操作vo

3、mb_substr($vo['atitle'],0,9,'utf-8');函数截取字符还带编码

 

 

7、取某表的所有字段 a.*

$dataout=db('article')->alias('a')->field('a.*,c.catename')->join('bk_cate c','a.acateid=c.id')->paginate(2);

 

8、模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)

1、通过模型事件(钩子函数),可以模型事件是写在模型里面的,控制器中也必须用了模型操作数据库才能触发模型事件

3、传入一个参数(当前的模型对象实例),也就是你传到模型中的数据,也就是你传到数据库中的数据

2、模型事件是写在模型里面的,控制器中也必须用了模型操作数据库才能触发模型事件

4、支持(当前的模型对象实例),也就是你传到模型中的数据,也就是你传到数据库中的数据

模型

 1 <?php
 2 namespace app\admin\model;
 3 use think\Model;  4  5 class Article extends Model  6 {  7 protected static function init() //用来统一注册,里面的事件注册了才能用  8  {  9 Article::event('before_insert', function ($datain) { //支持传入一个参数,(当前的模型对象实例),也就是你传到模型中的数据 10 if($_FILES['athumb']['tmp_name']){ 11 // 获取表单上传文件 例如上传了001.jpg 12 $file = request()->file('athumb'); 13 // 移动到框架应用根目录/public/uploads/ 目录下 14 $info = $file->move(ROOT_PATH . 'public' . DS . 'static/uploads/admin'); 15 // 已经上传成功,我们要把文件的路径写进数据库 16 $datain['athumb']='/static/uploads/admin/'.$info->getSaveName(); 17  } 18  }); 19  } 20 } 

控制器:

<?php
namespace app\admin\controller;
use think\Controller;use app\admin\model\Article as ModelArticle; use app\admin\model\Cate as ModelCate; use app\admin\controller\Base; class Article extends Base { public function add(){ if(request()->isPost()){ $datain=input('post.'); $datain['time']=time(); $modelArticle=new ModelArticle(); //2、获取传入的文件数据 /*在模型的事件中处理了*/ if($datain//用了模型,传入的参数就是$datain $this->success('添加文章成功!!','article/lst'); }else{ $this->error('添加文章失败!!'); } // dump($datain);die; return; } //将栏目信息显示回增加界面 //catetree方法新增了栏目的level字段 $modelCate=new ModelCate(); $data=$modelCate->catetree(); $this->assign('data',$data); return view(); } }

 

9、删除之前上传的图片

article模型中的代码:

 1 <?php
 2 namespace app\admin\model;
 3 use think\Model;
 4 
 5 class Article extends Model
 6 {
 7     protected static function init()
 8     {
 9         Article::event('before_update', function ($datain) {
10             if($_FILES['athumb']['tmp_name']){
11                 //1、删除原来的图片
12                 $dataArticle = Article::find($datain->aid);
13                 /*$_SERVER['DOCUMENT_ROOT'] string(129) "E:/2017-02-21--SoftWare/PHP/SOFTWARE/phpStudy_New/PHPTutorial/WWW/github/BicycleEnterpriseWebsite/BicycleEnterpriseWebsite/public"*/
14                 $thumbpath=$_SERVER['DOCUMENT_ROOT'].$dataArticle->athumb;
15                 if(file_exists($thumbpath)){
16                     @unlink($thumbpath);
17                 }
18                 //2、添加新图片
19                 // 获取表单上传文件 例如上传了001.jpg
20                 $file = request()->file('athumb');
21                 // 移动到框架应用根目录/public/uploads/ 目录下
22                 $info = $file->move(ROOT_PATH . 'public' . DS . 'static/uploads/admin');
23                 // 已经上传成功,我们要把文件的路径写进数据库
24                 $datain['athumb']='/static/uploads/admin/'.$info->getSaveName();
25             }
26         });
27     }
28 }    

1、$_SERVER['DOCUMENT_ROOT']

2、file_exists($thumbpath)

3、@unlink($thumbpath);

4、thinkphp中的@

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_754432.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算及其对您的SEO的影响

云计算及其对您的SEO的影响 互联网对商业世界的影响不容低估&#xff0c;经常使用“革命化”和“提升”等词语来描述当前的气候。过去三十年来&#xff0c;企业逐渐适应互联网&#xff0c;并在网上开展越来越多的业务。互联网技术的进步使得企业竞相跟上&#xff0c;以便他们能…

网站另类推广玩法心得

互联网营销&#xff0c;越来越多的个人或是企业希望通过网上营销将自己的产品或服务推广出去&#xff0c;但是这些站的具体运营呢&#xff0c;多数仅仅停留在把站做起来&#xff0c;而没有太好的推广手段&#xff0c;而如何有访问呢?人们首先想到的就是 SEO&#xff0c;因为通…

HTML易烊千玺网页,易烊千玺弟弟破世界纪录,被扒两天就被人打破,认证网站遭质疑...

近日&#xff0c;世界纪录认证WRCA网站宣布易烊千玺的弟弟易烊昱华成功创造了一个新的世界纪录。在今年八月&#xff0c;易烊昱华以1分50秒66的成绩完成了2个二阶魔方的还原&#xff0c;是世界上完成这个挑战的最小年龄纪录保持者。易烊千玺的亲弟弟虽然还只是一个素人&#xf…

服务器稳定性和seo有什么区别,服务器稳定性对seo有那些帮助

原标题&#xff1a;服务器稳定性对seo有那些帮助一、网站经常性打不开&#xff0c;流量损失大经过努力SEO优化之后&#xff0c;很多关键词都优化上来了&#xff0c;但是用户进来之后发现网站打不开&#xff0c;于是随手就关掉了&#xff0c;一个个精准的流量就这样白白损失掉了…

服务器做网站空间,服务器做网站空间

服务器做网站空间 内容精选换一换本节介绍使用华为云Web应用防火墙(Web Application Firewall&#xff0c;WAF)保护Web服务&#xff0c;且网站域名解析至中国大陆节点服务器的备案场景。如图1所示。① 企业将网站域名(www.example.com)添加至WAF控制台&#xff0c;接入WAF&…

网站攻防之CSRF和XSS跨站脚本攻击

进入正题之前&#xff0c;先扯一番&#xff1a;黑客本义并非某些人以为的利用网络干坏事的人&#xff0c;刚开始或者说现在的很多&#xff0c;黑客是以技术大牛的形式存在的&#xff0c;也就是在网络领域有一门专场的牛人。有些黑客不干坏事而是干好事&#xff0c;比如利用网站…

用Pelican+Github搭建个人博客网站

Title: 用PelicanGithub搭建个人博客网站 Date: 2017-06-4 19:13 Category: 技术博客 Modified: 2018-10-11 19:03 Tags: 博客网站 Slug: pelican-build-site Authors: Victor Lv Summary: 用PelicanGithub搭建个人博客网站 创建仓库 在github上创建一个username.github.io的…

如何在linux上运行asp网站,linux上搭建asp网站

1、需要安装一些依赖包yum –y updateyum -y install gcc gcc-c bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel2.centos6.5上(尽量不要去更改包的…

网站的 计算机主机作用是什么意思,前端主机是什么 前端主机功能介绍【图文】...

前端主机,前端主机是什么意思随着控制、计算机、通信、网络等技术的发展,计算机控制的形式已逐步从单机控制发展成多机控制,并进一步出现了集检测、控制、管理于一体的计算机控制网络,即分布式控制系统(Distributed Control System)。这类系统一般由两级计算机组成:上位机和前端…

html超链接自动跳转,超链接是什么(一打开网页就跳转另一个网站)

超链接标签指的是点击它会跳到html页面内指定的位置或者打开另外一个指定的网页&#xff0c;有这样效果的标签我们就称为超链接标签。在现实中用得最多的有超链接功能的就是a标签&#xff0c;在讲它的应用之前&#xff0c;我们先来讲一下html标签的属性问题。细心的朋友已经发现…

tocat服务器怎么登陆网站,如何登陆tomcat服务器配置

如何登陆tomcat服务器配置 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。本节介绍如何查看云服务器的mac地址。云服务器的mac地址…

有多个script怎么放一起_恶意镜像是什么?自己网站恶意镜像该怎么处理?

如果你将seo优化来到一定的水平&#xff0c;网址具备了一定的权重时一般就会出现网址被他人故意镜像系统的状况。什么叫故意镜像系统?故意镜像系统&#xff0c;也叫故意复制&#xff0c;故意分析&#xff0c;是指很多人 根据网站域名A记录马上分析别人ip详细地址&#xff0c;从…

laravel count 按一个字段去重_网站漏洞测试与修复漏洞Laravel框架

Laravel框架是目前许多网站,APP运营者都在使用的一款开发框架,正因为使用的网站较多,许多攻击者都在不停的对该网站进行漏洞测试,我们在对该套系统进行漏洞测试的时候,发现存在REC漏洞.主要是XSRF漏洞,下面我们来详细的分析漏洞,以及如何利用,漏洞修复等三个方面进行全面的记录…

csrf在web网站中有多重要

小弟是学python的&#xff0c;今天在上网时看到一个商城网站&#xff0c;正好昨天学到了CSRF跨站请求&#xff0c;就对这个商城网站进行了一波测试 可以看到网页布局做的还是很不错的&#xff0c;然后进入了注册页面看看 之后就开始测试了 正常请求是返回上面这串json 然后用po…

dw网页制作入学教程_个人网页制作教程,四个步骤快速建站

随着各种网页制作工具的普及&#xff0c;现在不懂技术的个人也能顺利建站了。不过使用网页制作工具虽然简单&#xff0c;但仍有很多细节需要注意&#xff0c;并且要遵循一定流程。那么个人究竟该如何建站呢&#xff1f;下面就给大家详细科普下个人网页制作教程&#xff1a;第一…

更新网站 图片缓存_一个大型网站的技术架构是这样建成的

1.前端架构前端指用户请求到达网站应用服务器之前经历的环节&#xff0c;通常不包含网站业务逻辑&#xff0c;不处理动态内容。浏览器优化技术并不是优化浏览器&#xff0c;而是通过优化响应页面&#xff0c;加快浏览器页面的加载和显示&#xff0c;常用的有页面缓存、合并HTTP…

tdk怎么设置_壹起航:怎么做好网站SEO优化,这几大步骤要掌握

网站SEO优化目的就是提高搜索引擎上的排名&#xff0c;从而达到直接销售产品或者企业品牌推广的作用&#xff0c;保障企业通过互联网服务获得足够的利润。接下来&#xff0c;跟随壹起航一起来了解一下SEO优化的步骤是怎样的吧。网站TDK的确定网站TDK就像我们班的名字和数量&…

这五个我珍藏的编程网站,你可千万别错过了

大家好&#xff0c;我是鱼皮&#xff0c;今天给大家推荐几个最近非常流行的编程网站&#xff0c;相信能够帮助大家提高编程效率、更好地学习编程。 热门编程网站推荐 Codepen 演示视频&#xff1a;还用代码画圣诞树&#xff1f;这个网站直接白给&#xff01;前端程序员必备在线…

如何通过网站域名查询服务器地址,如何根据域名查看服务器地址

如何根据域名查看服务器地址 内容精选换一换园区智能体的算法服务支持的输出类型为Webhook。在创建作业前您需确保Webhook Service已运行成功。下面以一个简单的python脚本作为示例&#xff0c;展示如何启动Webhook Service并保存接收的数据。准备一台本地的Linux服务器&#x…

云服务器安全网站,网站服务器安全

网站服务器安全 内容精选换一换用户Jack在浏览网站时&#xff0c;通过应用软件呼叫客服人员&#xff0c;呼叫请求上报至语音通话平台。语音通话平台分别呼叫主叫Jack和客服Sophia&#xff0c;使主叫和被叫互相通话。详细体验过程如图1所示。语音回呼能力可以应用在以下场景。在…