phpcms v9升级后台无法上传缩略图的原因分析

phpcms V9 是目前国内使用人数最多的一款开源免费的CMS系统,正是由于他的免费性,开源性,以及其自身的功能性比较强大,所以倍受许多站长朋友们的亲来,以及许多的公司的喜欢。phpcms也为了完善程序漏洞,官方人员会经常性的发布一些程序补丁,让用户使用。防止一些特殊群体,通过程序的漏洞去攻击别人的网站。不过这次更新了phpcms v9之后,发现网站后台上传缩略图的时候,会出现无法上传的现象,浏览器提示undefined错误,经过一方面的测试,发现这个错误,只有一些火狐核心的浏览器才会出现,IE,360这种的IE核心浏览器上传一切正常。这是什么原因造成的呢,我们通过程序去排查一下为何后台无法上传缩略图,并出现undefined的错误。 

  一、phpcms V9 后台无法上传缩略图的处理方法

  首先打开网站程序路径中的,phpcms---modules----attachment----attachments.php文件,找到attachments.php文件中的50行---53行代码,这里有一段判断是否登录的程序,我们把这段话删掉就可以了。如图所示  

  通过删除非常简单的一段话,就能解决类似火狐核心的浏览器,后台无法上传缩略图的错误。接下来我们详细分析为什么这句话,就会导致后台无法上传缩略图呢,以后如果大家遇到程序上面的错误,也可以通过下面的方法去分析,一定要学会灵活使用,程序都是死的,而我们程序员的思维是灵活的。

  注:如果您对为何会出现无法上传缩略图错误不感兴趣,以下内容均可略过不看!

  二、phpcms V9 后台无法上传缩略图的原因分析

  既然知道是这句话的原因了,那么我们就看看为何是这句话导致了无法上传缩略图。

  if(isset($_POST[‘dosubmit‘])){ //判断是否点击了提交按钮

  //判断是否登录

  if(empty($this->userid)){ //如果useid为空,则直接退出。($this指类本身,是由attachments类在构造函数制定的。)

  exit(‘0‘);

  }

  既然是判断了userid为空就退出,那我们无法上传缩略图,肯定是被判断为空了。我们把$this->userid输出一下看看。

  从图中可以看出,这里输出的是1,也就是说$this->userid是为1的,1肯定不是空值了。那怎么会出现退出现象了呢。我们再换一个方法测试,看看

  if(empty($this->userid)){

  exit(‘0‘);

  }

  这句话是否执行了。

  //判断是否登录

  if(empty($this->userid)){

  echo ‘‘;

  exit(‘0‘);

  } else{

  echo ‘‘;

  }

  如图所示:

  我们看到,程序确实执行了,跳出的动作。看来火狐核心的浏览器还是把“1”当成了empty来处理,所以导致了,phpcms V9在使用火狐核心的浏览器时,后台无法上传缩略图的现象。

时间: 2024-10-15 20:14:09

phpcms v9升级后台无法上传缩略图的原因分析的相关文章

Phpcms V9网站从本地上传到服务器需要修改的地方小结

网站在本地做好后要迁移到服务器上:网站在发展的过程中,很可能多次的修改域名.那么在Phpcms V9中我们要怎么进行设置呢 请进行以下步骤的修改: 1.修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为新域名就可以了. 2.进行后台设置->站点管理 对相应的站点的域名进行修改. 3.更新系统缓存.点击后台右上角的"更新缓存"按钮. 4.进入内容->附件管理->附件地址替换.把附件地址批量的替换为新的地址. 5.内容-&g

Phpcms V9网站从本地上传到服务器需要修改的地方

网站在本地做好后要迁移到服务器上:网站在发展的过程中,很可能多次的修改域名.那么在Phpcms V9中我们要怎么进行设置呢请进行以下步骤的修改: Phpcms V9网站上传到服务器具体方法如下: 1.修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为新域名就可以了. 2.进行后台设置->站点管理 对相应的站点的域名进行修改. 3.更新系统缓存.点击后台右上角的“更新缓存”按钮. 4.进入内容->附件管理->附件地址替换.把附件地址批量的替换

phpcms后台批量上传添加图片文章方法详解(一)

注:以下所有代码中,红色部分为增加部分. 一.在后台增加批量添加按钮 打开“phpcms\modules\content\templates\content_list.tpl.php”文件 搜索“$category['catname']));?> ”在这句话的后天的添加: a  echo="" href=":;" m="content&c=content&a=addall&menuid=&catid=&pc_h

Dedecms本地上传缩略图无法自动添加水印的解决方法

客户遇到一个问题,DEDECMS(V5.7)后台添加文档时,本地上传缩略图无法自动添加水印(系统设置里的图片水印设置没有问题),找了半天,终于找到了解决方法,留个记号: 打开dede/archives_do.php 找到第111行 $upfile = AdminUpload('litpic', 'imagelit', 0, false ); 改成 $upfile = AdminUpload('litpic', 'imagelit', 0, true ); 然后打开include/helpers/

ecshop 后台批量上传商品 完整上传

ecshop 后台批量上传商品,之所以无法上传,是因为后台上传php文件方法中没有导入商品原图路径 将ecshop根目录中的admin/goods_batch.php文件全部修改为 <?php /** * ECSHOP 商品批量上传.修改 * ============================================================================ * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利. * 网站地址: ht

WP8.1 Study17:网络之后台下载/上传及HttpClient

一.后台下载/上传 1.简介 使用BackgroundTransferGroup可以十分方便操作上传及下载文件,BackgroundDownloader和BackgroundUploader类中的方法提供一系列方法交互这一过程,因此我们也可以利用live tile或toast显示传输的状态. 2.下载代码 代码一: async void DownloadFile(Uri sourceUri, string destFilename) { cts = new CancellationTokenSo

php 图片操作类,支持生成缩略图,添加水印,上传缩略图

<?php class Image {     //类开始     public $originimage = ""; //源图片文件地址     public $imageext = ""; //源图片格式     public $thumbimage = ""; //缩略图文件存放地址     public $thumb_maxwidth = 1440; //缩略图最大宽度     public $thumb_maxheight = 9

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

升级IOS8游戏上传自定义头像功能失效的问题

为了支持arm64,之前已经折腾了很久,昨晚打包准备提交苹果审核时,测试那边的同事反馈说游戏上传自定义头像功能不可用了. 游戏上传自定义功能的简介:卡牌游戏最初是<比武招亲>中有一个充VIP之后就可使用了上传自定义功能的特权,我们的游戏就"复制"了该功能.   具体实现就是点击游戏内换自定义头像的按钮后,调用不同平台相应的方法,获取用户选择的图片数据,然后将图片裁剪再传给后台保存至特定的目录下.   测试设备是ipad air2,系统版本IOS 8.0.1,点击游戏内的按钮