7 Commits
r1 ... r8

Author SHA1 Message Date
admin
4625fbefed utils 2022-10-14 09:08:47 +08:00
admin
d7e971f32d add 2022-10-13 17:13:54 +08:00
admin
7ab231a76f 修复bug 2022-10-13 16:04:14 +08:00
Administrator
29422d1c04 bug 2022-10-03 16:57:17 +08:00
Administrator
8b116aec24 bug 2022-10-03 16:52:59 +08:00
admin
417de33e3d remark 2022-09-26 10:29:52 +08:00
admin
7dd6ec5f22 utils 2022-09-22 11:27:26 +08:00
9 changed files with 73 additions and 455 deletions

View File

@@ -1,82 +0,0 @@
package sc545.pay.interceptor;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.*;
import org.springframework.web.servlet.HandlerInterceptor;
import sc545.pay.utils.DBUtil;
import sc545.pay.utils.ReadTxt;
import sc545.pay.utils.Utils;
public class testInterceptor implements HandlerInterceptor{
@Override
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
/*************************************拉黑高频访问ip******************************************/
if(!"".equals(ReadTxt.getSetting(null, "拉黑ip.txt", Utils.getIpAddr(request), ""))){
PrintWriter out = response.getWriter();
out.print("<meta name='viewport' content='width=device-width, initial-scale=1.0'>系统检测到高频次访问已被拉黑IP<br>若误封请前往微信公众号【顺诚百宝箱】反馈<br>感谢理解!<br>IP"+Utils.getIpAddr(request));
return false;
}
String ipdate = ReadTxt.getSetting(null, "访问者IP.txt", Utils.getIpAddr(request), "");//获取此ip上次访问时间和已经访问的次数
String[] idt = ipdate.split("_");//分隔
long i=0;//已经访问的次数
if(!"".equals(ipdate)){
if(ipdate.indexOf("_")>0) i=Utils.getNum(idt[1]);
//检查此ip第一次访问到现在过了几秒
Date ds = Utils.string2Date(idt[0], null);
long xc = (new Date().getTime() - ds.getTime())/1000;
if(xc<=30){//30秒超过50次
if(i>50){//拉黑此ip3天
ReadTxt.writeSetting(null,"拉黑ip.txt", Utils.getIpAddr(request), Utils.date2String(new Date(), null));
ReadTxt.delSetting(null, "访问者IP.txt", Utils.getIpAddr(request));
}else{//正常ip
}
}else{//正常ip
ReadTxt.delSetting(null, "访问者IP.txt", Utils.getIpAddr(request));
}
ReadTxt.writeSetting(null,"访问者IP.txt", Utils.getIpAddr(request), idt[0]+"_"+(++i));
}else
ReadTxt.writeSetting(null,"访问者IP.txt", Utils.getIpAddr(request), Utils.date2String(new Date(), "yyyy-MM-dd HH:mm:ss")+"_1");
/*******************************************************************************/
DBUtil db = new DBUtil();
//闭站
String cw = ReadTxt.getSetting(null, "setting.ini", "closeweb", "0");
if("1".equals(cw)) {
String uri = request.getRequestURI();
if(uri.indexOf("/admin")<0){
Utils.outHtml(response.getWriter(), ReadTxt.getSetting(null, "setting.ini", "closewebtxt", "本站暂停访问"), "/*about:blank*/");
return false;
}
}
return true;
}
}

View File

@@ -6,7 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import sc545.pay.utils.DBUtil; import sc545.pay.utils.DBUtil;
import sc545.pay.utils.ImgUtils; import sc545.pay.utils.FileUtils;
import sc545.pay.utils.ReadTxt; import sc545.pay.utils.ReadTxt;
import sc545.pay.utils.Utils; import sc545.pay.utils.Utils;
@@ -69,7 +69,7 @@ public class core {
if(i==1){ if(i==1){
rs.put("code", "1"); rs.put("code", "1");
rs.put("qrcode", response.getQrCode()); rs.put("qrcode", response.getQrCode());
rs.put("qrimg", ImgUtils.QrImgB64(response.getQrCode(), 300)); rs.put("qrimg", FileUtils.QrImgB64(response.getQrCode(), 300));
rs.put("out_trade_no", response.getOutTradeNo()); rs.put("out_trade_no", response.getOutTradeNo());
}else rs.put("errcode", "-1"); }else rs.put("errcode", "-1");
} else { } else {

View File

@@ -299,7 +299,7 @@ public static String putImg(ServletContext servletContext,MultipartFile file,Str
//修改:原本存储在项目根路径下的,为了防止删除项目文件丢失 //修改:原本存储在项目根路径下的,为了防止删除项目文件丢失
//path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径 //path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径
//现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片 //现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片
String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://webFile"); String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://scbox_settings/webFile");
if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1); if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1);
String np=lpath; String np=lpath;
if(lpath.indexOf(":")>0){ if(lpath.indexOf(":")>0){
@@ -389,7 +389,7 @@ public static String putImgAsName(ServletContext servletContext,MultipartFile fi
//修改:原本存储在项目根路径下的,为了防止删除项目文件丢失 //修改:原本存储在项目根路径下的,为了防止删除项目文件丢失
//path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径 //path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径
//现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片 //现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片
String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://webFile"); String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://scbox_settings/webFile");
if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1); if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1);
String np=lpath; String np=lpath;
if(lpath.indexOf(":")>0){ if(lpath.indexOf(":")>0){
@@ -487,7 +487,7 @@ public static String putVideo(ServletContext servletContext,MultipartFile file,S
//修改:原本存储在项目根路径下的,为了防止删除项目文件丢失 //修改:原本存储在项目根路径下的,为了防止删除项目文件丢失
//path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径 //path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径
//现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片 //现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片
String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://webFile"); String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://scbox_settings/webFile");
if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1); if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1);
String np=lpath; String np=lpath;
if(lpath.indexOf(":")>0){ if(lpath.indexOf(":")>0){
@@ -585,7 +585,7 @@ public static String putFile(ServletContext servletContext,MultipartFile file,St
//修改:原本存储在项目根路径下的,为了防止删除项目文件丢失 //修改:原本存储在项目根路径下的,为了防止删除项目文件丢失
//path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径 //path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径
//现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片 //现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片
String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://webFile"); String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://scbox_settings/webFile");
if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1); if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1);
String np=lpath; String np=lpath;
if(lpath.indexOf(":")>0){ if(lpath.indexOf(":")>0){
@@ -712,7 +712,7 @@ public static String writeFile(ServletContext servletContext, String path,
oldfile=oldfile.substring(i+1, oldfile.length()); oldfile=oldfile.substring(i+1, oldfile.length());
} }
String path1 = ""; String path1 = path;
if(path.indexOf("./")==0) if(path.indexOf("./")==0)
path =path.substring(1, path.length()); path =path.substring(1, path.length());
@@ -724,7 +724,7 @@ public static String writeFile(ServletContext servletContext, String path,
//修改:原本存储在项目根路径下的,为了防止删除项目文件丢失 //修改:原本存储在项目根路径下的,为了防止删除项目文件丢失
//path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径 //path = servletContext.getRealPath(lpath);//图片存储在项目根目录下的路径
//现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片 //现修改为:存储到固定文件夹(子路径保留)读取的时候通过url获取base64格式图片
String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://webFile"); String basePath = ReadTxt.getSetting(null, "setting.ini", "FilePath", "D://scbox_settings/webFile");
if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1); if("/".equals(basePath.substring(basePath.length()-1, basePath.length()))) basePath=basePath.substring(0, basePath.length()-1);
String np=path; String np=path;
if(path.indexOf(":")>0){ if(path.indexOf(":")>0){
@@ -775,7 +775,7 @@ public static void delfile(ServletContext servletContext, String path) {
if(path.indexOf("./")==0) if(path.indexOf("./")==0)
path =path.substring(1, path.length()); path =path.substring(1, path.length());
String path1 = ""; String path1 = path;
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0) if(path.indexOf(":") <= 0)
path1 = "D:\\" + path; path1 = "D:\\" + path;
@@ -804,7 +804,7 @@ public static void delfile(ServletContext servletContext, String path) {
/** /**
* 删除字符串中提取的文件 * 删除字符串中提取的图片文件
* *
* @param path * @param path
* 项目根目录下的文件路径servletContext若null为c盘下的 * 项目根目录下的文件路径servletContext若null为c盘下的
@@ -823,7 +823,7 @@ public static void delFileForStr(ServletContext servletContext, String str) {
path=path.replace(ReadTxt.getSetting(null, "setting.ini", "resweb", ""),""); path=path.replace(ReadTxt.getSetting(null, "setting.ini", "resweb", ""),"");
String path1 = ""; String path1 = path;
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0) if(path.indexOf(":") <= 0)
path1 = "D:\\" + path; path1 = "D:\\" + path;
@@ -851,6 +851,12 @@ public static void delFileForStr(ServletContext servletContext, String str) {
} }
/**
* 提取字符串中的图片地址存入数据库
* @param str
* @param towhere
* @param saveName
*/
public static void intoSqlForStr(String str,String towhere,String saveName) { public static void intoSqlForStr(String str,String towhere,String saveName) {
ArrayList<String> imgs = Utils.getImgStr(str, true); ArrayList<String> imgs = Utils.getImgStr(str, true);
DBUtil db = new DBUtil(); DBUtil db = new DBUtil();
@@ -975,7 +981,7 @@ public static ResponseEntity<FileSystemResource> returnFile(File file) {
* @param localUrl 二维码地址 * @param localUrl 二维码地址
* @return * @return
*/ */
public String imgPS(String title,String des,String teacher,String teacherImgUrl,String localUrl) { public static String imgPS(String title,String des,String teacher,String teacherImgUrl,String localUrl) {
String r=null; String r=null;
try { try {
String bjUrl = "file:///C://webimg/bj.jpg"; String bjUrl = "file:///C://webimg/bj.jpg";

View File

@@ -2,10 +2,8 @@ package sc545.pay.utils;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;

View File

@@ -1,15 +1,7 @@
package sc545.pay.utils; package sc545.pay.utils;
import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.security.KeyManagementException; import java.security.KeyManagementException;
import java.security.KeyStoreException; import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@@ -29,12 +21,9 @@ import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager; import javax.net.ssl.X509TrustManager;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.Header;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair; import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore; import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
@@ -317,7 +306,8 @@ public class HttpUtils {
} }
private static org.apache.http.client.HttpClient wrapClient(HttpClient base) { @SuppressWarnings("deprecation")
private static org.apache.http.client.HttpClient wrapClient(HttpClient base) {
try { try {
SSLContext ctx = SSLContext.getInstance("TLSv1"); SSLContext ctx = SSLContext.getInstance("TLSv1");
X509TrustManager tm = new X509TrustManager() { X509TrustManager tm = new X509TrustManager() {
@@ -491,6 +481,7 @@ public class HttpUtils {
* @param header * @param header
* @return * @return
*/ */
@SuppressWarnings("rawtypes")
public static String doPost2(String url, Map<String, String> params, CookieStore cookie,Map<String, String> header,String charset) { public static String doPost2(String url, Map<String, String> params, CookieStore cookie,Map<String, String> header,String charset) {
if(charset==null||charset.trim().length()<1) charset="UTF-8"; if(charset==null||charset.trim().length()<1) charset="UTF-8";
if (StringUtils.isBlank(url)) { if (StringUtils.isBlank(url)) {
@@ -548,6 +539,7 @@ public class HttpUtils {
return null; return null;
} }
@SuppressWarnings("rawtypes")
public static String doGet2(String url, Map<String, String> params, CookieStore cookie,Map<String, String> header,String charset) { public static String doGet2(String url, Map<String, String> params, CookieStore cookie,Map<String, String> header,String charset) {
if(charset==null||charset.trim().length()<1) charset="UTF-8"; if(charset==null||charset.trim().length()<1) charset="UTF-8";
if (StringUtils.isBlank(url)) { if (StringUtils.isBlank(url)) {

View File

@@ -1,244 +0,0 @@
package sc545.pay.utils;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.*;
import javax.imageio.ImageIO;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;
import sun.misc.BASE64Encoder;
import com.google.zxing.*;
import com.google.zxing.common.BitMatrix;
public class ImgUtils {
public static void main(String[] args) throws Exception {
}
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
private static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
}
}
return image;
}
private static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, file)) {
throw new IOException("Could not write an image of format " + format + " to " + file);
}
}
/**
* 删除二维码白边
* @param matrix
* @return
*/
public static BitMatrix deleteWhite(BitMatrix matrix) {
int[] rec = matrix.getEnclosingRectangle();
int resWidth = rec[2] + 1;
int resHeight = rec[3] + 1;
BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);
resMatrix.clear();
for (int i = 0; i < resWidth; i++) {
for (int j = 0; j < resHeight; j++) {
if (matrix.get(i + rec[0], j + rec[1]))
resMatrix.set(i, j);
}
}
return resMatrix;
}
/**
* 生成一张二维码图片文件
* @param content 二维码内容
* @param widthHeight 宽高度
* @param path 图片存储路径(不带文件名)
* @return
*/
public static String QrImgFile(String content,int widthHeight,String path) {
try {
String codeName = UUID.randomUUID().toString();// 二维码的图片名
String imageType = "jpg";// 图片类型
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix= multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, widthHeight, widthHeight, hints);
bitMatrix= deleteWhite(bitMatrix);
// BufferedImage imgbuf = toBufferedImage(bitMatrix);
File file1 = new File(path, codeName + "." + imageType);
writeToFile(bitMatrix, imageType, file1);
return path+codeName + "." + imageType;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 生成一张二维码图片(BufferedImage)
* @param content 二维码内容
* @param widthHeight 宽高度
* @return
*/
public static BufferedImage QrImgBuf(String content,int widthHeight) {
try {
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix= multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, widthHeight, widthHeight, hints);
bitMatrix= deleteWhite(bitMatrix);
BufferedImage imgbuf = toBufferedImage(bitMatrix);
return imgbuf;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 生成一张二维码图片(base64)<br>
* data:image/jpg;base64,base64_code
* @param content 二维码内容
* @param widthHeight 宽高度
* @return
*/
public static String QrImgB64(String content,int widthHeight) {
try {
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix= multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, widthHeight, widthHeight, hints);
bitMatrix= deleteWhite(bitMatrix);
BufferedImage imgbuf = toBufferedImage(bitMatrix);
ByteArrayOutputStream os = new ByteArrayOutputStream();//新建流。
ImageIO.write(imgbuf, "jpg", os);//利用ImageIO类提供的write方法将bi以png图片的数据模式写入流。
byte b[] = os.toByteArray();//从流中获取数据数组。
String str = new BASE64Encoder().encode(b);
return str;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 图片质量压缩
* @param img 文件流
* @param quality 压缩质量 0~1/1为最高质量
* @return
*/
public static BufferedImage rarImgBuf(InputStream img, double quality) {
BufferedImage buf =null;
try {
buf = Thumbnails.of(img).scale(1f).outputQuality(quality).asBufferedImage();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return buf;
}
/**
* 图片质量压缩
* @param img 文件地址
* @param quality 压缩质量 0~1/1为最高质量
* @return
*/
public static File rarImgFile(File img, double quality) {
File arg0 = img;
try {
Thumbnails.of(img).scale(1f).outputQuality(quality).toFile(arg0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arg0;
}
/**
* 裁剪图片<br>
* 从左上角开始裁切<br>
* 另存图片保持等比缩放,若填写的高度不符合自动调整为等比例
*
* @param img 图片文件
* @param p 裁切位置 Positions.TOP/BOTTOM_LEFT/RIGHT、CENTER
* @param x 裁切x轴范围
* @param y 裁切y轴范围
* @param width 另存图片的宽度
* @param height 另存图片的高度
* @return
*/
public static File cutImgFile(File img,Positions p,int x,int y,int width,int height) {
File arg0 = img;
try {
Thumbnails.of(img).sourceRegion(p, x, y).size(width, height).keepAspectRatio(true).toFile(arg0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arg0;
}
/**
* 裁剪图片<br>
* 从左上角开始裁切<br>
* 另存图片保持等比缩放,若填写的高度不符合自动调整为等比例
*
* @param img 图片流
* @param p 裁切位置 Positions.TOP/BOTTOM_LEFT/RIGHT、CENTER
* @param x 裁切x轴范围
* @param y 裁切y轴范围
* @param width 另存图片的宽度
* @param height 另存图片的高度
* @return
*/
public static BufferedImage cutImgBuf(InputStream img,Positions p,int x,int y,int width,int height) {
BufferedImage buf =null;
try {
buf=Thumbnails.of(img).sourceRegion(p, x, y).size(width, height).keepAspectRatio(true).asBufferedImage();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return buf;
}
}

View File

@@ -2,44 +2,22 @@ package sc545.pay.utils;
import java.io.*; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Random;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
public class ReadTxt { public class ReadTxt {
public static void main(String[] args) { public static void main(String[] args) {
//上月新增访客
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
if(month==0){
month=12;
year=year-1;
}
String ms = String.format("%02d", month);
String ys = String.format("%04d", year);
String smm=ys+"-"+ms;
String smck= ReadTxt.getSetting(null, "count.ini",smm, "0");
String a = ReadTxt.getSetting(null, "setting.ini", "pageNullTelTxt","提交需求");
System.out.println(a+smm+"\n"+ms+"\n"+ys);
} }
/** /**
* 按行读取txt文件 * 按行读取txt文件
* *
* @param path * @param path
* 文件地址默认D:\\开头) * 文件地址默认D:\\scbox_settings开头)
* @return ArrayList 返回每行数据为一个items的集合 * @return ArrayList 返回每行数据为一个items的集合
*/ */
public static ArrayList<String> readFileLine(ServletContext servletContext, String path) { public static ArrayList<String> readFileLine(ServletContext servletContext, String path) {
@@ -49,7 +27,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -82,55 +60,12 @@ public class ReadTxt {
} }
/**
* 按行读取文件
* debug模式
* @param path
* 文件地址默认D:\\开头)
* @return ArrayList 返回每行数据为一个items的集合
*/
public static ArrayList<String> readFileLineDEBUG(String path) {
if(path.indexOf("./")==0)
path =path.substring(1, path.length());
//debug模式下把所有路径改为tomcat下的真实路径
if(path.indexOf("/")==0){
String tomcat_path = "D:/java/Tomcat_8.5.23/webapps/ROOT";
path =tomcat_path+path;
}
ArrayList<String> strarr = null;
try {
File file = new File(path);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
strarr = new ArrayList<String>();
while ((lineTxt = bufferedReader.readLine()) != null) {
strarr.add(lineTxt);
}
read.close();
} else {
strarr = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return strarr;
}
/** /**
* 写入txt文档已存在就修改否则写入末尾,自动加换行 文件格式key=value换行分隔 * 写入txt文档已存在就修改否则写入末尾,自动加换行 文件格式key=value换行分隔
* *
* @param path * @param path
* 文件地址默认D:\\开头) * 文件地址默认D:\\scbox_settings开头)
* @param keyname * @param keyname
* 要修改的参数名 * 要修改的参数名
* @param content * @param content
@@ -145,7 +80,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -213,7 +148,7 @@ public class ReadTxt {
* 读取txt配置返回map集合文件格式key=value换行分隔 * 读取txt配置返回map集合文件格式key=value换行分隔
* *
* @param path * @param path
* 文件地址默认D:\\开头) * 文件地址默认D:\\scbox_settings开头)
* @return hashmap * @return hashmap
*/ */
public static HashMap<String, String> readSetting(ServletContext servletContext, String path) { public static HashMap<String, String> readSetting(ServletContext servletContext, String path) {
@@ -222,7 +157,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -268,7 +203,7 @@ public class ReadTxt {
* *
* *
* @param path * @param path
* 文件地址默认D:\\开头) * 文件地址默认D:\\scbox_settings开头)
* *
* @param t 只取以此字符开头的不限制填null * @param t 只取以此字符开头的不限制填null
* @param st 从以此字符开头的行开始读取不限制填null * @param st 从以此字符开头的行开始读取不限制填null
@@ -284,7 +219,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -389,7 +324,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -458,7 +393,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -528,7 +463,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }
@@ -615,7 +550,7 @@ public class ReadTxt {
if (servletContext == null) { if (servletContext == null) {
if(path.indexOf(":") <= 0&&path.indexOf("/") <0) if(path.indexOf(":") <= 0&&path.indexOf("/") <0)
path = "D:\\" + path; path = "D:\\scbox_settings\\" + path;
} else { } else {
path = servletContext.getRealPath(path); path = servletContext.getRealPath(path);
} }

View File

@@ -1,7 +1,10 @@
package sc545.pay.utils; package sc545.pay.utils;
import java.awt.image.BufferedImage;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URL;
import java.net.URLConnection;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -16,6 +19,7 @@ import java.util.Random;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import javax.servlet.http.Cookie; import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -25,8 +29,7 @@ import org.apache.commons.lang.time.DateUtils;
public class Utils { public class Utils {
public static void main(String[] args) { public static void main(String[] args) {
String s = floatToString(0.01235788889f, 3,false); getWeekNum();
System.out.println(s);
} }
/** /**
@@ -698,12 +701,6 @@ public class Utils {
*/ */
public static long getDatePoor(Date endDate, Date nowDate) { public static long getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;// 一天
long nh = 1000 * 60 * 60;// 一小时
long nm = 1000 * 60;// 一分钟
long ns = 1000;// 一秒 long ns = 1000;// 一秒
// 获得两个时间的毫秒时间差异 // 获得两个时间的毫秒时间差异
@@ -714,6 +711,13 @@ public class Utils {
return sec; return sec;
} }
/**获取今天是周几1-7*/
public static long getWeekNum() {
long[] weekDays = {7,1,2,3,4,5,6};
Calendar c = Calendar.getInstance();
return weekDays[c.get(Calendar.DAY_OF_WEEK)-1];
}
/** /**
* 获取用户真实ip * 获取用户真实ip
@@ -1084,7 +1088,8 @@ public class Utils {
DecimalFormat decimalFormat=new DecimalFormat(f);//构造方法的字符格式这里如果小数不足2位,会以0补足. DecimalFormat decimalFormat=new DecimalFormat(f);//构造方法的字符格式这里如果小数不足2位,会以0补足.
String p=decimalFormat.format(d);//format 返回的是字符串 String p=decimalFormat.format(d);//format 返回的是字符串
if(p.split("\\.")[0].length()<1) p="0"+p; if(p.split("\\.")[0].length()<1) p="0"+p;
String nn = p.split("\\.")[1]; String nn ="0";
if(p.split("\\.").length>1) nn = p.split("\\.")[1];
if(!x){ if(!x){
if(nn.replaceAll("0", "").length()<1) p=p.split("\\.")[0]; if(nn.replaceAll("0", "").length()<1) p=p.split("\\.")[0];
} }
@@ -1171,6 +1176,31 @@ public class Utils {
} }
return pics; return pics;
} }
/**
* 获取图片的宽高
* @param url
* @return
*/
public static int[] getImgWH(String url){
int srcWidth = 0; // 源图宽度
int srcHeight = 0; // 源图高度
try{
URL url1 = new URL(url);
URLConnection connection = url1.openConnection();
connection.setDoOutput(true);
BufferedImage image = ImageIO.read(connection.getInputStream());
if(image==null) return new int[]{0,0};
srcWidth = image .getWidth(); // 源图宽度
srcHeight = image .getHeight(); // 源图高度
}catch(Exception e){e.printStackTrace();}
return new int[]{srcWidth,srcHeight};
}
public static Map<String, Object> urlParamToMaps(String q) { public static Map<String, Object> urlParamToMaps(String q) {

View File

@@ -37,21 +37,4 @@
</bean> </bean>
<!-- 配置静态资源 -->
<mvc:resources location="/" mapping="/**/*.js" />
<mvc:resources location="/" mapping="/**/*.css" />
<mvc:resources location="/assets/" mapping="/assets/**/*" />
<mvc:resources location="/images/" mapping="/images/*"
cache-period="360000" />
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="sc545.pay.interceptor.testInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
</beans> </beans>