yangjianzhouctgu
- 浏览: 420338 次
- 性别:
- 来自: 上海
最近访客
社区版块
- ( 0)
- ( 0)
- ( 1)
最新评论
-
:
兄弟,这tm是java?
-
:
-
yangjianzhouctgu:
neoman 写道hi,我看你引入了kendo.web.min ...
-
:
hi,我看你引入了kendo.web.min.js 这个js, ...
-
yangjianzhouctgu:
llscp 写道这是js吧...对的呀
文章列表
在开发中,经常会有上传文件的需求,为了安全起见,防止上传恶意文件,需要对文件类型进行检查。网上一般有两种方式:
1、对文件扩展名进行检查,符合指定扩展名的文件才可以上传成功
2、对文件头进行检查,文件头的魔数符合预期(每种文件的魔数都是已知的),才可以上传成功
第1种方式有明显的缺陷,用户可以通过修改扩展名来通过检查,
第2种方式可以满足绝大多数场景,但是也有缺点,它不去判断文件扩展名
jmimemagic就是利用文件头中的魔数来判断文件类型的开源工具。
其地址见:https://github.com/arimus/jmimemagic.git
其获取文件类型流程如 ...
- 2017-06-22 23:05
- 浏览 4075
- 分类:开源软件
- 博客分类:
spring boot项目可以以jar包的形式执行运行。spring boot技术目前很火,因此了解可运行jar包的制作和执行过程很重要。
1、项目结构如下
2、我们以config模块为例子,其gradle文件配置如下
group 'spring-cloud-in-action'
version '1.0-snapshot'
apply plugin: 'java'
sourcecompatibility = 1.8
/**
* 自定义变量
*/
ext.vendor = 'iwill'
ext.email = 'yangjianzhouctgu@126 ...
- 2017-06-04 19:42
- 浏览 955
- 分类:编程语言
- 博客分类:
需求:通知指定项目下面指定类型文件(java、properties、xml等)的行数
关键代码:
#!/bin/bash
#统计指定目录下面指定类型文件的行数
targetdirfile=$1;
filetype="*."$2;
totallines=0;
while read line
do
let count=$(find $line -type f -name "$filetype" | xargs cat | wc -l);
- 2017-05-17 00:37
- 浏览 844
- 分类:编程语言
- 博客分类:
之前一直想在自己的电脑上安装oracle数据库及plsql客户端,各种尝试,最开始尝试在centos上安装oracle,但是缺失各种插件,插件一个一个安装,最后还是安装失败。之后转向在windows(减少了插件的安装)上安装oracle,数据库倒是安装成功了,但是plsql客户端配置不好。今天专门抽时间在专门的虚拟机上安装oracle和plsql,经过查找资料,最后安装成功,特此记录。
1、安装文件下载
1.1、 windows 64版本oracle安装文件下载。
1.2、oracle客户端instantclient_11_2(其他版本应该也可以)下载。
...
- 2017-02-25 19:04
- 浏览 1216
- 分类:数据库
- 博客分类:
目的:将参数代表的文件中的内容正序和反序输出来
程序在one文件中,代码如下:
#! /usr/bin/perl
use strict ;
use warnings ;
my $count = 0 ;
my @contents ;
while (defined(my $line = <>)){
$count = 1 ;
push @contents , $line ;
print "$line" ;
}
print "===========reverse print== ...
- 2017-01-15 23:17
- 浏览 691
- 分类:编程语言
- 博客分类:
根据端口号,查找对应的进程,具体如下:
1、netstat -alp | grep 2181
2、根据得到的进程号3567去获取具体的进程:ps -aux | grep 3567
3、我们得到端口2181是被zookeeper占用了
- 2016-12-19 21:28
- 浏览 937
- 分类:操作系统
- 博客分类:
需求:对于数据库中的记录,如果有两条连续的数据的value字段的值相同,则发邮件通知相关人员。
需求分析:告警系统里面的告警检查是通过sql来进行的,一般的sql实现不了此功能,因此,这里可以通过函数的方式来实现。
具体实现如下:
1、数据表准备:tb_config_record。新建数据表脚本如下:
create table tb_config_record (id int ,status varchar(20), value varchar(20), updated_at datetime, updated_by varchar(20), create ...
- 2016-11-09 23:29
- 浏览 4963
- 分类:数据库
- 博客分类:
一、问题的提出
一个操作执行select * from tb_trade_record where product_type = ‘book’语句,假设表tb_trade_record初始时有1000000行数据,整个select过程持续10分钟。会话1在8:00发起这个select操作(这时,满足product_type = ‘book’的记录有10000条),8:02时,会话2向tb_trade_record表中插入了2条数据,且product_type = ‘book’,并且已提交,会话1在8:10读取完毕。那么,会话1读出的记录是10000条,还是10002条?
...
- 2016-11-06 22:54
- 浏览 1582
- 分类:数据库
- 博客分类:
1.触发器
1.1 编写触发器
delimiter $
create trigger tg_inserttestwheninsertuser
after insert on tb_user
for each row
begin
insert into tb_test(id) values(1);
end$
delimiter ;
1.2.查看触发器
mysql> select * from information_schema.`triggers` \g;
*************************** 1. row ************** ...
- 2016-07-31 22:46
- 浏览 707
- 分类:数据库
#!/bin/bash
if [ -z ${log_home} ] ; then
log_home="/tmp/logs/jersey-app"
if [ ! -d ${log_home} ] ; then
mkdir -p ${log_home}
fi
fi
export root_dir=$0/..
export gradle_opts=" -xx:permsize=128m -xx:maxpermsize=256m -xnoagent -djava.compiler=none -xde ...
- 2016-05-14 09:13
- 浏览 768
- 分类:开源软件
- 博客分类:
jdk的动态代理即使用反射来实现,具体由proxy、invocationhandler等类来实现的。
具体调用过程比较难理解,但是如果看到生成的代理类就不难理解了。
代码如下:
接口类:calculator.java
package com.yangjianzhou.javabasics;
/**
* created by yangjianzhou on 16-5-8.
*/
public interface calculator {
public int add(int operator1 , int operator2);
}
实现类 ...
- 2016-05-09 23:12
- 浏览 704
- 分类:编程语言
- 博客分类:
1.autowired
通过spring的依赖注入功能来装配(注入)bean,这个注入动作是通过org.springframework.beans.factory.config.beanpostprocessor来进行的,因此,beanpostprocessor或者beanfactorypostprocessor中的引用不能通过autowired来注入
2.疑问:autowired与injectparam的区别
3.autowired与resource的区别
(1).autowired是spring的注解,resource是jdk的注解
(2).autowire ...
- 2016-05-01 23:33
- 浏览 1161
- 分类:编程语言
- 博客分类:
一般应用中常见spring的配置的作用
- 2016-04-29 23:08
- 浏览 880
- 分类:编程语言
« 上一页 1 …