-
Java解压zip文件
代码如下:```java/***解压文件*@paramfilePath源文件*@paramtargetPath解压后文件*@paramdelete解压是否删除原文件*/publicstaticvoidunzip(StringfilePath,StringtargetPath,booleandelete){if(StringUtils.isEmpty(targetPath)||StringUtils.isEmpty(filePath))return;Filefile=newFile(filePath);if(!file.exists()||!file.isFile())return;if(!targetPath.endsWith("/"))targetPath+="/";Tools.createFile(targetPath,true);InputStreamis=null;ZipInputStreamzis=null;try{is=newFileInputStream(filePath);zis=newZipInputStream(is,Charset.forName("UTF-8"));java.util....
Java zip -
使用POI修改PPT文本颜色
用了一下POI修改PPT,感觉这东西好麻烦。下面是两种修改文本颜色的例子:第一种比较简单:```javaColorcolor=newColor(0,0,0);xslfTextRun.setFontColor(color);```上面这种,很容易理解。下面这个就有点点,主要是他的参数名称非常糟糕。```javaif(ctRegularTextRun.getRPr().getSolidFill()==null)ctRegularTextRun.getRPr().addNewSolidFill();ctRegularTextRun.getRPr().getSolidFill().newCursor().removeXmlContents();//删除掉多余信息,否者打开时提示错误if(ctRegularTextRun.getRPr().getSolidFill().getSrgbClr()==null)ctRegularTextRun.getRPr().getSolidFill().addNewSrgbClr();CTSRgbColorctsRgbColor=ctRegularTextRun.getRPr().ge...
POI PPT -
Java文件下载限速
之前一直使用的Spring提供的`ResponseEntity`来做下载,主要代码如下:```javaheaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);headers.setContentDispositionFormData("attachment",order.getSn()+"."+FilenameUtils.getExtension(file.getName()));returnnewResponseEntity(FileUtils.readFileToByteArray(file),headers,HttpStatus.OK);```上面的代码有一些问题,就是`ResponseEntity`加载的时候是一次性把整个文件`load`到内存。那么就可能出现一些问题,例如几个用户同时下载一个200M的文件那么内存消耗非常快,而且没办法限速,也许是我没找到。那么怎么限速呢?直接贴上代码:```javaresponse.setContentType("application/octet-stream");;response.setHeader...
Java 文件下载限速 -
Linux命令轻松统计你的代码行数
上一次Boss问,写了这么久的代码,写了多少行代码统计过吗,当时我没怎么在意,后来越想越觉得这是我的劳动成果,是要自己统计下。当时我想到的是写代码统计咯,这个好像有点那啥是吧。最近我也突然想到了,经常用Linux的`wc`统计,于是乎产生了下面的一行命令轻松搞定:```bashfind./-typef-name'*.java'|xargscat|wc-l```
Linux 统计代码行数 -
MyEclipse2015重置自带Tomcat
重新安装了MyEclipse最新的2015,但是误删了servers的项目,结果启动提示:`TheTomcatserverconfigurationat\Servers\MyEclipseTomcatv7.0-configismissing.Checktheserverforerrors.`如下图:解决办法就是点击添加服务器如下图操作就可以了:
MyEclipse Tomcat -
Java使用POI读取2007+版本PPT
贴上代码,感觉读取Word,PPT,Excel这些都可以直接把文件用7z解压后,然后看主要文件的XML文件结构,然后代码自然就出来了。不多说了,直接贴上代码:```javapackagecom.acgist.ppt;importjava.io.IOException;importjava.util.List;importorg.apache.poi.openxml4j.exceptions.OpenXML4JException;importorg.apache.poi.xslf.XSLFSlideShow;importorg.apache.xmlbeans.XmlException;importorg.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;importorg.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;importorg.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObject...
PPT POI Java -
百度自动提交URL
以前一直觉得在某某论坛才发表了帖子,居然百度直接收录了。原来有这个功能(百度站长主动推送),以前一直没有得到这个权限,所以一直也没做过这东西,今天发现居然有了这个权限了,立马就来写了:```javaimportjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.UnsupportedEncodingException;importorg.apache.commons.lang.ArrayUtils;importorg.apache.commons.lang.StringUtils;importorg.apache.http.HttpResponse;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.enti...
主动推送 -
Nginx对字体压缩
对应的`mime`如下:```font/x-woffwoff;font/opentypeotf;application/x-font-ttfttf;application/vnd.ms-fontobjecteot;```
Nginx 字体压缩 -
MongoDB用户权限
最近有个网站用到MongoDB,以前都没配置权限的,现在突然要用到安全的东西,网上有些文章都是旧版本的,也走了些弯路。开始配置用户的权限,用户的权限有几种,权限分得非常细,混淆了一个`dbAdmin`和`userAdmin`,我开始以为是同样的功能,原来`userAdmin`只是用来管理账号的,不能使用`showcollections...`更多详细内容参考:[http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/2470](http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/2470)下面是一些创建的用户##超级管理用户,用来管理所有的用户`db.createUser({user:"root",pwd:"root",roles:["userAdminAnyDatabase"]});`##数据查询用户####任何数据库的查询和创建索引等一些操作`db.createUser({user:"admin",pwd:"admin",roles:["dbAdminAnyDatabas...
MongoDB 用户权限 -
使用webfont优化网站小图标
今天发现一个很不错的网站,可以把一些ICO小图标变为字体包,这样的好处就是可以轻松的改变颜色。不多说,网站地址:[https://icomoon.io/app/#/select](https://icomoon.io/app/#/select)可以选择其他libary,但是自带的两个就非常丰富了,导出是可以配置,而且还自动记住了我选择的图标,感觉非常的人性化。还有一个阿里巴巴的库:[http://www.iconfont.cn/](http://www.iconfont.cn/)
矢量图 webfont icomoon 小图标 -
抓取网站文章
本段代码主要功能根据文章列表分页抓取文章,主要使用了`jsoup`,里面所有的选择器都可jQuery里面的选择器类似。代码如下:```javapackagecom.acgist.spider;importjava.io.IOException;importjava.net.MalformedURLException;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importorg.apache.commons.lang.StringUtils;importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;importorg.jsoup.nodes.Element;importorg.jsoup.select.Elements;/***文章抓取蜘蛛*/publicclassSpider{privateStringdomain;//文章链接地址privateStringdomainName;//文章网站名称privateStringfirstPage;//第一页privateStrin...
jsoup 网页抓取 -
Java使用POI根据模板导出Word
最近从新写了一下根据Word模板导出Word。>注意:Word只包含表格和段落,不使用表格布局。图片样式也保留,但是预先需要知道图片的资源ID。删除多余模块时,有顶部对不齐的问题。可能还存在其他细节问题。首先模板样式:下面是导出来的Word:下面贴上代码:```javapackagecom.acgist.word;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;imp...
POI Word模板 Java -
Linux批量压缩CSS和JS
这里需要使用到一个压缩的jar:`yuicompressor`命令如下:```bashfind./-regex'.*\.\(css\|js\)'|awk'{printf"正在压缩文件,原始大小:"}{system("du"$1)}{system("java-jar/home/yuicompressor-2.4.7.jar--charsetutf-8"$1"-o"$1)}{system("du"$1)}{print"======================================================="}'```这也是人生第一次使用awk啊,以后努力学习。
yuicompressor 批量压缩 -
CentOS7网络配置
今天安装了CentOS7,新的东西就是麻烦,以前网卡都是`ifcfg-eth0`的,现在默认的是`ifcfg-enp0s3`,里面默认配置的是IPv6的信息,IPv4的没有配置了。这时候我们把虚拟机的网卡调为桥接模式,然后修改`ifcfg-enp0s3`的配置如下:```TYPE=EthernetBOOTPROTO=staticIPADDR=192.168.1.200NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=114.114.114.114HWADDR=08:00:27:33:3e:42DEFROUTE=yesPEERDNS=yesPEERROUTES=yes#IPV4_FAILURE_FATAL=noNAME=enp0s3UUID=f8851884-9601-4ddb-9319-81bbdb862b57DEVICE=enp0s3ONBOOT=yes```我配置完成后发现可以本地连接,但是却ping不同外网,这是因为没有配置DNS。DNS配置是后面要加上1,2等序号吧,否者也是不行的。或者可以使用`nameserver`命令配置。
CentOS7 -
JPA一对多和多对多注解
#一对多##单向```java@ManyToMany(fetch=FetchType.LAZY)@JoinTable(name="xx_order_item_rel",joinColumns={@JoinColumn(name="oir_id")},inverseJoinColumns={@JoinColumn(name="p_id")})```##双向####订单```java@ManyToMany(fetch=FetchType.LAZY)@JoinTable(name="xx_order_item_rel",joinColumns={@JoinColumn(name="oir_id")})```####商品```java@OneToMany(mappedBy="p_id",fetch=FetchType.LAZY)```#多对多```@ManyToMany(fetch=FetchType.LAZY)@JoinTable(name="t_office_rel_group",joinColumns=@JoinColumn(name="group_id"),inverseJoinColumns=@JoinCo...
JPA 一对多 多对多 -
fullPage插件问题
有个页面用到了全屏翻页,使用到了`jquery.fullPage`插件,但是发现每一页都会显示第二页上面一点点,这是为什么呢?如果改变窗口大小后恢复正常。原来初始化窗口的时候,会获取窗口的高度,但是这个时候获取的高度有一种可能就是滚动条没有被隐藏,那么获取到的高度就会减去滚动条的高度,再开始分页,所以就会显示到第二页。我们只需要修改一下CSS就可以了:在`.section`样式上面加上`overflow:hidden;`
jquery.fullPage -
8G内存提示内存不足之程序员
最新买的电脑啊,配置非常好啊,但是回来一用老提示内存不足啊,但是我8G内存,怎么可能内存不足呢?一直纳闷啊,但是今天突然找到原因了,原因就是我是一个苦逼程序员啊。当你们调试,开启工具的时候,Java就已经默默的使用了你电脑的内存,只不是在任务管理器里面看不到而已。Java启动里面有一个参数叫做`-Xmx`,这个参数非常之凶残,如果你不设置那么默认是你物理内存的1/4,那么8G就占用了2G那个样子啊。这样就非常的恐怖,特别是你开发的时候,Tomcat很快就占用了你的内存。下面就截张图在哪里配置Tomcat的信息:第一个参数是初始化内存是多少,第二个是最大内存。还有就是`Eclipse`或者`MyEclipse`的启动配置在软件根目录下面的`eclipse.ini`或者`myeclipse.ini`里面。>20220606批注现在开发电脑基本上都是16G了😀😀😀
8G内存 内存不足 -
HTML转PDF和PNG
最近也是有个需求需要将PDF转为PDF和PNG,发现了一个非常不错的工具CutyCapt,官网:[http://cutycapt.sourceforge.net/](http://cutycapt.sourceforge.net/)转出来的东西非常不错,比网上找的一些用其他框架转的好太多了,来张效果图(来自Windows系统截图):不过对CSS3的圆角效果还有阴影这些效果好像支持不是非常好。Linux上面比较麻烦,参考文章:[http://ziyu-1.iteye.com/blog/1749594](http://ziyu-1.iteye.com/blog/1749594)参考上面的文章有一些问题已经在文章里面提及到,一些细节补充一下。首先安装QT平台,这个可能会有一些依赖包的问题,其中有一个`file/usr/bin/assistant_adpfrominstallofqt44-x11-4.4.3-10_4.el5.x86_6...
HTML转PDF HTML转PNG CutyCapt wkhtmltopdf wkhtmltoimage iText -
POI读取Word2007+
很多人使用POI读取Word的时候都会这么写:```javaInputStreaminputStream=newFileInputStream(newFile("e://company/test.docx"));XWPFDocumentdocument=newXWPFDocument(inputStream);System.out.println(newXWPFWordExtractor(document).getText());```但是这个方法其实有非常多的问题的,文本框里面的内容读取不到,换行也有问题,那么这里我改进了一下:```java/***处理2007+的WORD*@paramfilePath文件地址*@returnword内容*/privatestaticStringread2007(StringfilePath){InputStreaminputStream=null;StringBuffercontent=newStringBuffer();try{inputStream=newFileInputStream(newFile(filePath));XWPFDocumentdocument=n...
POI Java Word Word2007+ -
微信JS图片上传接口
```javascriptwx.chooseImage({success:function(res){varlocalIds=res.localIds;if(localIds&&localIds.length>0&&localIds[0]){wx.uploadImage({localId:localIds[0],isShowProgressTips:1,success:function(res){if(res&&res.serverId){alert("图片ID"+res.serverId);}}});}else{alert("未选中图片");}}});```上面是微信上传的JS代码,微信JS图片上传接口,总是选择了图片后不执行上传的`uploadImage`函数,但是启用debug后发现又可以。然后我们在执行`uploadImage`函数前面加一个`alert`,发现也可以上传,但是不可能用户选了图片还要提示点击后才执行上传的操作吧。然后把代码改成这样就可以了:```javascriptwx.chooseImage({success:function(r...
微信公众平台 微信JS接口 微信图片上传