记一次网站项目维护

news/2024/5/10 22:02:08/文章来源:https://blog.csdn.net/qq_21420941/article/details/89469164

灌一下水,记录一下。

目录

图片上传大小限制

图片不存在时的默认显示

json中尖括号英文冒号等未转义而出现的错误

网页管理后台加载超时


图片上传大小限制

      接到师哥电话要修改维护的某网站的一个功能,大体是要将网页的注册表单里的上传图片按钮加一个上传大小限制,比如限制上传图片的大小为1M以内。emmmmmm按理来说这个功能是又常见又简单,所以前端基本一窍不通的我竟然信心满满。

OK第一步先定位一下要修改的网页源码在哪里。

打卡目标网页,网址显示settingDetail(原谅我的打码技术)。打开eclipse,找到这个同名jsp文件,马上就发现上传按钮在源码的体现:

  <div class="form-group"><label class="col-sm-3 control-label">企业Logo</label><div class="col-sm-3"><img src="<%=ctx%>/resources/tzycw/img/imgshowbg.png"  id="logoThumbnail"  width="141" height="52"><div id="logFilelist" style="width: 500px">你的浏览器不支持Flash, or HTML5.</div></div><div class="col-sm-3"><div id="logoContainer"><a  href="javascript:;"  class="btn btn-default"  id="logoUploadBtn"  class="btn btn-default">上传<input type="hidden" id="logoUpload" class="form-control"  name="logo" validate-title="营业执照"  value="${dataVo.logo}" ></a></div></div></div>

等等,这个上传按钮和我想的有点不一样啊,怎么没有<input type="file">而是一个<a>标签和一个类型为hidden的<input>标签组成的上传按钮,这两个标签是怎么实现网页中这个样子的:

先不管它,自己写个jsp把代码搬过来看看效果,于是我创建了一个test的web项目,把代码copy进去,

超长的css,类似于这样:

<style>
.btn-default {color: #333;background-color: #fff;border-color: #ccc
}.btn-default.focus,.btn-default:focus {color: #333;background-color: #e6e6e6;border-color: #8c8c8c
}.btn-default:hover {color: #333;background-color: #e6e6e6;border-color: #adadad
}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color: #333;background-color: #e6e6e6;border-color: #adadad
}
。。。。。。。。。。。。。。还有很多。。。。。。。。。。。。。。。。。
</style>

以及按钮对应的代码。

tomcat加载项目,start运行,启动成功!打开网页!http://localhost:****/test/***.jsp

点击上传!wtf没有反应。还是我太年轻,其中一定有猫腻

回到网页,对着上传button右键查看元素!

果然这里竟然多了一个input标签并且type是file,源码里并没有,这是怎么回事???问了问前端群里的大佬,大佬说是什么dom自动生成、js自动构造,不懂不懂,我还是继续研究一下这个button,打开对应的event监听器。

plupload,这是什么,直觉告诉我这一定和上传有关(好吧其实是我看到了upload),百度,plupload是上传组件,打开plupload源码一探究竟:

好长一串,并看不懂,难道就这样放弃了么,冥思苦想了半天,发现这个input标签有这样一个属性validate-title="",百度了一下,这个是jquery的validate表单验证组件。在源码里ctrl+F查了一下validate,果然页面引入了这个两个valid的js文件。

<script src="http://www.*****.com.cn/resources/bootstrap/js/jquery.valid.js"></script><script src="http://www.*****.com.cn/resources/bootstrap/js/jquery.validTip.min.js"></script>	

于是乎我又看了半天valid.js的代码,百度了半天,还是不知道怎么加入这个限制图片上传大小的功能。就这样过去了两三天,在一个无聊的下午,我灵机一动,找了一个5M的动图穿了上去,神奇的事情发生了:

看来这个网站是有限制图片上传大小的功能的,只需要找到这个功能源码,改一下参数就行了。

于是翻遍了项目的前端页面代码,终于被找到了:

var uploader1 = new plupload.Uploader({runtimes : 'html5,flash,html4',browse_button : 'logoUploadBtn', // you can pass in id...container: document.getElementById('logoContainer'), // ... or DOM Element itselfurl : sysCons.root + '/upload.do?date=' + new Date(),flash_swf_url : sysCons.root+ '/resources/plupload/js/Moxie.swf',multi_selection:false,filters : {max_file_size : '2mb',mime_types: [{title : "图片文件", extensions : "jpg,gif,png"},]},init: {PostInit: function() {$('#logFilelist').empty();},FilesAdded: function(up, files) {plupload.each(files, function(file) {var html="";html += "<div id='"+file.id+"_div'>";html += '<span id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b> </span>';html += "</div>";document.getElementById("logFilelist").innerHTML=html;});uploader1.start();},UploadProgress: function(up, file) {document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";		},FileUploaded: function(up, file, info){$(":hidden[name='logo']").val(info.response);$("#logoThumbnail").attr("src",sysCons.root  +"/filecache/"+info.response);commonFun.bindOneImageShowClick($("#logoThumbnail"));//console.log('[FileUploaded] File:', file, "Info:", info);},Error: function(up, err) {console.error("Error #" + err.code + ": " + err.message);if (err.code == plupload.FILE_SIZE_ERROR) {$.dialog.error("文件大小不能超过2m");} else if (err.code == plupload.FILE_EXTENSION_ERROR) {$.dialog.error("只允许上传后缀名为【jpg,gif,png】的文件");} else {$.dialog.error("Error #" + err.code + ": " + err.message);}}}});		

感觉自己是个傻子,不过为了增加这个上传限制的功能,自己学到了好多,jquery的validate,上传文件的组件plupload,<a>标签怎么做出按钮的效果,各种各种。 


图片不存在时的默认显示

新的问题出现了,有的企业在注册时并没有添加企业logo,这就导致了网站上企业信息页面上显示企业logo的地方出现了叉号,影响美观。有了上次的经验,这次直接右键查看源码和检查元素,快速定位了网站的源码位置。

发现

<img src="<%=zxy%>/uploadFiles/logo/${unitInfo.logo}"class="pull-left">

            这里并没有设置图片不存在时的处理:οnerrοr="this.style.display='none'",当然也可以用onerror事件指定一张当找不到图片时默认显示的图片:<img src="images/logo.png" οnerrοr="javascript:this.src='images/logoError.png';">。


json中尖括号英文冒号等未转义而出现的错误

新的问题又出现了,用户反馈一个表单中的文本域提交后报错,第一反应是长度超出限制,后来发现存储这个文本域的字段是varchar2类型大小4000,用户输入的文本并没有超过大小限制,后来发现该用户的输入中有特殊字符尖括号"<",结合浏览器的debug信息还有后台报错日志,考虑json在传送数据时未对"<"进行转义而引起的错误。

找到MyJsonConverter.java

protected Object readInternal(Class<? extends Object> c, HttpInputMessage request) 
throws IOException,HttpMessageNotReadableException {......jsonStr = jsonStr.replace("\"null\"","\"\"").replace("\"undefined\"","\"\"");//System.out.println("jsonStr2 ===== " + jsonStr);jsonStr = vFilter.filter(jsonStr);		return this.getObjectMapper().readValue(jsonStr, c);}}

发现确实没有进行转义,修改后如下:

protected Object readInternal(Class<? extends Object> c, HttpInputMessage request) throws IOException,HttpMessageNotReadableException {......jsonStr = jsonStr.replace("\"null\"","\"\"").replace("\"undefined\"","\"\"").replace(">","&gt;");jsonStr = vFilter.filter(jsonStr);		return this.getObjectMapper().readValue(jsonStr, c);}}

添加了replace(">","&gt;"); 成功解决bug。


网页管理后台加载超时

网页后台管理人员反馈后台管理页面弹出错误提示,ok定位发生错误的页面,复现bug,等等,在我电脑上打开后台管理页面流畅如斯,刷新了几十遍也没有任何错误信息弹出。只好去查询截图里的错误代码,在源码里搜索错误代码,发现这个网站的所有错误代码都是40001......

崩溃中,抓耳挠腮想了半天,发现这个页面加载了所有会员的信息,分页就有几百页,会不会是加载超时报错,于是手动降网速,果然疯狂刷新十几遍以后开始报错。于是查看分页逻辑,感觉分页没什么问题,又去查看dao层方法。发现这个页面的查询语句是select *,再一看这张表都有哪些字段,发现有一个超大的blog字段,里面存的全是超长的文本,再一看管理后台页面,这个字段是没有显示的,但是sql语句却查询了,于是把sql查询语句改了一下,不用坑爹的*,剔除blog这个字段,果然没有报错了。

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

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

相关文章

lnmp项目案例----搭建WordPress、wecenter网站

1、拆分机器 2、搭建backup服务器 # 软件 rsync # 关闭防火墙、selinux# 安装rsync# 编写配置文件 [rootbackup ~]# vim /etc/rsyncd.conf ## 前端代码仓库、数据库备份、上传文件的备份 uidwww gidwww port873 fake superyes use chrootno max connection200 timeuot600 i…

iis怎么切换网站php版本,IIS下PHP的切换

wordpress安装包下载解压后有个readme.html网页&#xff0c;打开后有下面一段话&#xff1a;system requirements是指服务器配置需求&#xff0c;最低要求是PHP版本5.2.4以上&#xff0c;mysql版本5.0以上。recommendations是推荐配置&#xff0c;推荐的是&#xff1a;PHP版本7…

网站上抓取数据并且自动发帖到论坛程序

近期本人闲来没事做了一个程序自动从一些BT网站上抓取数据并且自动发帖到我自己的论坛上&#xff0c;试用了几个月效果比较好&#xff0c;现在公布源代码供perl爱好者参考&#xff0c;欢迎广大perl爱好者一起沟通交流。分几个程序组成readcokie.pl 获取要上传主机的cookie一次获…

网站实时监控系统的设计与实现

引言  对网页监控比较成熟的技术是定时监控&#xff0c;即由用户设定时间间隔&#xff0c;系统按时对需监控的网页文件轮询一遍&#xff0c;来判断文件是否被非法删除或篡改。若发现&#xff0c;立即用备份盘上的备份文件进行恢复。这样的监控存在一个缺陷&#xff1a;被非法…

[BOF]高性能网站设计、开发、部署

北京 TechED 上&#xff0c;计划中的一个BOF&#xff08;同类人&#xff09;的主题是&#xff1a;高性能网站设计、开发、部署&#xff0c;下面是我初步整理需要讨论的主题&#xff1a; 网站是信息展示平台&#xff0c;它的核心职责是把信息展示出来。当然&#xff0c;他也有部…

值得网站开发者收藏的JAVASCRIPT图形图表库

http://www.uirss.com/blog-39451-6411.html 图表是数据图形化的表示&#xff0c;通过形象的图表来展示数据&#xff0c;比如条形图&#xff0c;折线图&#xff0c;饼图等等。可视化图表可以帮助开发者更容易理解复杂的数据&#xff0c;提高生产的效率和Web应用和项目的可靠性。…

seo按天扣费系统_扒拉一些搞SEO关键词排名赚钱的几个行业秘密

互联网上的赚钱方式各式各样&#xff0c;干什么的几乎都有&#xff0c;但是搞网站的、搞SEO的&#xff0c;最终目的也是赚钱&#xff0c;可是赚钱跟赚钱相比&#xff0c;SEO排名赚钱的还是出现了几个极端化。今天诺伊网小编给你深扒一些SEO行业的秘闻吧&#xff0c;估计很多干货…

:https web服务器ssl认证项目,网站启用https后的SSL的安全配置和检测

现在的网站通常开启SSL已经是标配了&#xff0c;不过&#xff0c;配置好了SSL后&#xff0c;还需要判断一下服务器部署的是否安全&#xff0c;如果没有配置好的话&#xff0c;会带来很多安全隐患。SSL/TLS 系列中有六种版本&#xff1a;SSL v2&#xff0c;SSL v3&#xff0c;TL…

国内的服务器网站,国内主流网站服务器

国内主流网站服务器 内容精选换一换在大型网络应用中&#xff0c;通常会使用多台服务器提供同一个服务。为了平衡每台服务器上的访问压力&#xff0c;通常会选择采用负载均衡来实现&#xff0c;提高服务器响应效率。云解析服务支持解析的负载均衡&#xff0c;也叫做带权重的记录…

国内外IGS数据及产品下载网站

国内外 IGS数据及产品下载网站 连接有所变更&#xff1a; CLK ,SP3 https://cddis.nasa.gov/archive/gnss/products/2220/ 本文是转载博客地址&#xff1a;https://blog.csdn.net/SmartTiger_CSL/article/details 一、转自http://geodesy.blog.sohu.com/274775667.html IG…

好吧我摊牌了,这是C++最好的5 个网站

相对其他语言来说&#xff0c;C 算是难度比较高的了&#xff0c;这一点无法否认。但是如果能有一些好的网站&#xff0c;则会让 C 的学习事半功倍。 那就来介绍几个最常用的&#xff08;最好的&#xff09;吧&#xff0c;包含了参考手册、教程、框架/库列表 ...... 1.cpprefer…

谷歌浏览器使用bing搜索引擎发现打开网站会替换搜索页

今天更新谷歌浏览器发现搜索东西&#xff0c;点击搜索结果网站&#xff0c;打开后的网站页会替换掉当前搜索页&#xff0c;就得点回退&#xff0c;很烦 后来发现不是谷歌浏览器的问题&#xff0c;是搜索引擎的问题&#xff0c;设置下搜索引擎就行 我使用的是bing搜索引擎 勾…

网站如何集成markdown编辑器

收藏(4)Markdown是一种可以使用普通文本编辑器编写的标记语言&#xff0c;通过简单的标记语法&#xff0c;它可以使普通文本内容具有一定的格式。它用简洁的语法代替排版&#xff0c;而不像一般我们用的文字处理软件 Word 等有大量的排版、字体设置。这使得我们能够专心的码字&…

Linux测试网速(linux服务器测试网站,命令行)

第一步&#xff1a;wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py 第二步&#xff1a; chmod arx speedtest.py 第三步&#xff1a; sudo mv speedtest.py /usr/local/bin/speedtest 第四步&#xff1a;sudo chown root:root /usr/local…

巧用VS2005解决VS2005网站发布不便问题

关键字:VS2005,网站发布,编译一、问题引入在VS2005网站开发过程中,网站发布问题一直是个问题.VS2005创建的网站有几个默认的目录:App_Code,App_Data,App_Themes........如果是但cs/vb文件,比如UploadFile.cs类UploadFile,这个类文件没有可视的aspx文件,那么这个文件就必须放到A…

各类常见的网站检查工具

一、网站基础查询 1.域名基础信息查询 http://tool.chinaz.com/Ip/Whois.asp 通过在线查询你可以知道自己网站的基本信息&#xff0c;当然很多时候你是清楚自己网站的情况的。但是你不一定知道对手网站的情况。 2.详细的网站历史查询 http://www.archive.org/web/web.php 3.网站…

USTC一个开源下载的网站

QT下载路径&#xff0c;版本5.12.6 http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/5.12/5.12.6/

最新10款精美的免费PSD网站模板下载

这篇文章收集了10款免费的 PSD 网站模板分享给大家&#xff0c;您可以免费下载使用。这些高质量的免费 PSD 网站模板可以让您的工作得心应手&#xff0c;帮助您节省大量的时间和精力。感谢那些优秀的设计师分享他们的劳动成果&#xff0c;让更多的人可以使用他们的创意设计&…

精选30个富有想象力的网站设计作品

在设计网站的时候&#xff0c;有几项事情需要牢记&#xff0c;其中很重要的事情之一就是为设计的品牌选择合适的风格。在这篇文章中&#xff0c;你将发现很多创意的&#xff0c;吸引眼球的网站设计作品&#xff0c;设计师们可通过这些优秀的设计作品来获取创作灵感&#xff0c;…

一个网站直接跳转引起的一些思考

近日看了一个站&#xff0c;网站的界面是这样的。 发现鼠标放上去&#xff0c;都是直接跳转&#xff0c;于是我查看了一下源代码 复制代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transit…