提交 9e8e44f1 authored 作者: zhengfg's avatar zhengfg

Merge remote-tracking branch 'origin/master'

package com.platform.controller; package com.platform.controller;
import com.platform.annotation.IgnoreAuth;
import com.platform.entity.TbCfDescripitonEntity; import com.platform.entity.TbCfDescripitonEntity;
import com.platform.entity.TbCfGoodstwotypeEntity; import com.platform.entity.TbCfGoodstwotypeEntity;
import com.platform.entity.TbCfStationItemEntity; import com.platform.entity.TbCfStationItemEntity;
import com.platform.entity.merge.GoodsTypeToGoodsTwo; import com.platform.entity.merge.GoodsTypeToGoodsTwo;
import com.platform.enums.OssFolderNameEnum;
import com.platform.service.TbCfDescripitonService; import com.platform.service.TbCfDescripitonService;
import com.platform.service.TbCfGoodstwotypeService; import com.platform.service.TbCfGoodstwotypeService;
import com.platform.service.TbCfStationItemService; import com.platform.service.TbCfStationItemService;
import com.platform.utils.PageUtils; import com.platform.util.ApiBaseAction;
import com.platform.utils.Query; import com.platform.utils.*;
import com.platform.utils.R; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -30,7 +30,7 @@ import java.util.Map; ...@@ -30,7 +30,7 @@ import java.util.Map;
*/ */
@Controller @Controller
@RequestMapping("tbcfstationitem") @RequestMapping("tbcfstationitem")
public class TbCfStationItemController { public class TbCfStationItemController extends ApiBaseAction {
@Autowired @Autowired
private TbCfStationItemService tbCfStationItemService; private TbCfStationItemService tbCfStationItemService;
@Autowired @Autowired
...@@ -41,6 +41,23 @@ public class TbCfStationItemController { ...@@ -41,6 +41,23 @@ public class TbCfStationItemController {
private Long INIT_NUM = 0L; private Long INIT_NUM = 0L;
private Long COUNT_NUM = 1L; private Long COUNT_NUM = 1L;
/**
* 上传文件
*/
@ApiOperation(value = "上传文件", notes = "上传文件")
@ApiImplicitParam(paramType = "query", name = "file", value = "文件", required = true, dataType = "MultipartFile")
@PostMapping("/image")
public Object uploadByUtil(@RequestParam("file") MultipartFile file) throws Exception {
if (file.isEmpty()) {
throw new RRException("上传文件不能为空");
}
//上传文件
String url = OssUtil.upload(file, OssFolderNameEnum.STATION.getValue());
return toResponsSuccess(url);
}
/** /**
* 查看列表 * 查看列表
*/ */
......
package com.platform.controller.api;
import java.io.File;
import java.io.FileOutputStream;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import com.platform.utils.OssUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.aliyun.oss.OSSClient;
import com.platform.annotation.IgnoreAuth;
import com.platform.utils.R;
import com.platform.utils.util.ImageUploadResult;
import com.platform.utils.OssUtil;
import com.platform.utils.util.PageData;
import com.platform.utils.util.StringUtil;
import com.platform.utils.util.UuidUtil;
@Controller
@RequestMapping(value="/api/osstest",produces="application/json;charset=UTF-8")
public class OssTestApi {
@IgnoreAuth
@RequestMapping("/createfolder")
@ResponseBody
public String createFolder() {
try {
OSSClient client= OssUtil.getOSSClient();
String fileDir=OssUtil.createFolder(client, "diaosaas-prod", "xinlizixun/");
return fileDir;
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
@IgnoreAuth
@RequestMapping(value="/uploadtest",produces="application/json;charset=UTF-8")
@ResponseBody
public String upload(MultipartFile file,String secondaryFolderName) {
try {
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件后缀
String prefix=fileName.substring(fileName.lastIndexOf("."));
// 用uuid作为文件名,防止生成的文件重复
final File mfile = File.createTempFile(UuidUtil.get32UUID(), prefix);
// MultipartFile to File
file.transferTo(mfile);
String url=OssUtil.uploadObject2OSS(mfile,secondaryFolderName);
System.out.println(mfile.getName());
System.out.println(url);
return url;
} catch (Exception e) {
e.printStackTrace();
return "err";
}
}
@IgnoreAuth
@RequestMapping(value="/uploadfile",produces="application/json;charset=UTF-8")
@ResponseBody
public String uploadfile(MultipartFile file,String secondaryFolderName) {
try {
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件后缀
String prefix=fileName.substring(fileName.lastIndexOf("."));
// 用uuid作为文件名,防止生成的文件重复
final File mfile = File.createTempFile(UuidUtil.get32UUID(), prefix);
// MultipartFile to File
file.transferTo(mfile);
String url=OssUtil.uploadObject2OSS(mfile,secondaryFolderName);
System.out.println(mfile.getName());
System.out.println(url);
return url +" "+fileName;
//return "";
} catch (Exception e) {
e.printStackTrace();
return "err";
}
}
/**
*
* @Function: uploadfileVideo
* @Description: (此方法只用于[课程管理模块]上传课程宣传视频和课程视频)
* @param:
* @return:
* @since JDK 1.8
@IgnoreAuth
@RequestMapping(value="/uploadfileVideo",produces="application/json;charset=UTF-8")
@ResponseBody
public Map<String, Object> uploadfileVideo(HttpServletRequest request,MultipartFile[] files) {
Map<String, Object> map = new HashMap<>();
List<String> urlList = new ArrayList<>();
try {
for (int i = 0; i < files.length; i++) {
// 获取文件名
String fileName = files[i].getOriginalFilename();
// 获取文件后缀
String prefix=fileName.substring(fileName.lastIndexOf("."));
System.out.println(UuidUtil.get32UUID()+"-"+fileName.substring(0,fileName.lastIndexOf(".")));
final File mfile = File.createTempFile(UuidUtil.get32UUID(), prefix);
// MultipartFile to File
files[i].transferTo(mfile);
String url=OssUtil.uploadObject3OSS(mfile,fileName);
// String fileUpload = OssUtil.fileUpload(mfile, fileName, request);
System.out.println(mfile.getName());
urlList.add(url);
// urlList.add(fileUpload);
}
map.put("urlList", urlList);
return map;
} catch (Exception e) {
e.printStackTrace();
return map;
}
} */
@IgnoreAuth
@RequestMapping("/deletetest")
@ResponseBody
public R delete(String url) {
try {
// http://diaosaas-prod.oss-cn-shenzhen.aliyuncs.com/education/155771122620710111.jpg
url = url.substring(url.lastIndexOf("/")+1);
OssUtil.deleteFile("diaosaas-prod", "education/", url);
return R.ok().put("success", "删除成功");
} catch (Exception e) {
e.printStackTrace();
return R.error().put("fail", "删除失败");
}
}
/**
* 富文本图片自定义上传
*/
@IgnoreAuth
@RequestMapping(value="/uploaditemimage",produces="application/json;charset=UTF-8")
@ResponseBody
public Object uploadItemImage(HttpServletRequest request) throws Exception {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile photo = multipartRequest.getFile("upfile");
String url = "";
if (photo.getSize() > 0) {
String result =OssUtil.upload(photo);
if (result.equals("fail")) {
} else {
url = result;
}
}
// 这里获取到文件 处理上传后返回路径
ImageUploadResult result = new ImageUploadResult();
result.setState("SUCCESS");
result.setUrl(url);
result.setOriginal(System.currentTimeMillis() + "/" + photo.getOriginalFilename());
result.setTitle(photo.getOriginalFilename());
return result;
}
// 删除富文本的图片
//content 需要更新的内容
//pd 没更新的数据
public void deleteUeditorImg( String content,PageData pd) {
if(pd.get("describes")!=null&&pd.get("describes").toString().trim().length()>0 ){
String dbContent = pd.getString("describes");
List<String> list = StringUtil.getImgStr(dbContent);
String[] a = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
a[i] = list.get(i);
}
List<String> list1 = StringUtil.getImgStr(content);
String[] b = new String[list1.size()];
for (int i = 0; i < list1.size(); i++) {
b[i] = list1.get(i);
}
List<String> list2 = StringUtil.compare(b, a);
for (int i = 0; i < list2.size(); i++) {
String path = list2.get(i);
path.substring(path.lastIndexOf("/")+1, path.length());
OssUtil.deleteFile("diaosaas-prod", "education/", path);
}
}
}
/**
* 获取实时长传进度
* @param request
* @return
*/
@RequestMapping ("/item/percent")
@ResponseBody
public int getUploadPercent(HttpServletRequest request){
HttpSession session = request.getSession();
int percent = session.getAttribute("upload_percent") == null ? 0: (Integer)session.getAttribute("upload_percent");
return percent;
}
/**
* 重置上传进度
* @param request
* @return
*/
@RequestMapping ("/percent/reset")
public void resetPercent(HttpServletRequest request){
HttpSession session = request.getSession();
session.setAttribute("upload_percent",0);
}
/**多线程分片文件上传**/
@RequestMapping("uploadFile")
public String uploadBlog(@RequestParam("file")MultipartFile file,HttpServletRequest request){//MultipartFile是spring类型,代表HTML中form data方式上传的文件,包含二进制数据+文件名称。 logger.info("文件上传");
HttpSession session=request.getSession();
String filename=file.getOriginalFilename();
session.setAttribute("fileName",filename);
System.out.println(filename);
long fileLength=file.getSize();
DecimalFormat df=new DecimalFormat(".00");
if(fileLength<1024){
session.setAttribute("fileSize","1KB");
}else if(fileLength>=1024 && fileLength<1024*1024){
session.setAttribute("fileSize",df.format(fileLength/1024.0)+"KB");
}else {
session.setAttribute("fileSize",df.format(fileLength/(1024.0*1024.0))+"MB");
}
try {
if(file!=null){
if (!"".equals(filename.trim())){
//MultipartFile转File
File newFile=new File(filename);
FileOutputStream os=new FileOutputStream(newFile);
os.write(file.getBytes());
os.close();
file.transferTo(newFile);//将上传文件写入目标文件
//上传到OSS
String key="time1128";
// String url=OssUtil.upLoad(newFile,session,key);
//删除临时文件
newFile.delete();
}
}
} catch (Exception e) {
e.printStackTrace();
//return "上传失败:"+e.getMessage();
}
return "upload_success";//上传成功页面
}
}
<!DOCTYPE html> <!DOCTYPE html>
<html> <html xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head> <head>
<title>站点商品</title> <title>站点商品</title>
#parse("sys/header.html") #parse("sys/header.html")
...@@ -45,12 +45,32 @@ ...@@ -45,12 +45,32 @@
<Form-item label="商品链接" prop="itemUrl"> <Form-item label="商品链接" prop="itemUrl">
<i-input v-model="tbCfStationItem.itemUrl" placeholder="商品链接"/> <i-input v-model="tbCfStationItem.itemUrl" placeholder="商品链接"/>
</Form-item> </Form-item>
<Form-item label="商品价格" prop="itemUrl"> <Form-item label="商品价格" prop="itemPrice">
<i-input v-model="tbCfStationItem.itemPrice" placeholder="商品价格"/> <i-input v-model="tbCfStationItem.itemPrice" placeholder="商品价格"/>
</Form-item> </Form-item>
<Form-item label="商品图片" prop="itemImg">
<!-- <i-input v-model="xPicture.pictureUrl" placeholder="图片地址"/> -->
<upload
action="../api/osstest/uploadtest"
:before-upload="handleBeforeUpload"
:on-success="handleSuccess" :show-upload-list="false" accept="image/jpeg, image/png">
<i-button icon="ios-cloud-upload-outline">请选择图片</i-button>
</upload>
<div style="display: flex;position: relative;">
<div v-for="item in uploadList" style="margin-left: 5px;">
<img :src="item" width="100" height="100" id="itemImg">
<i class="ivu-icon ivu-icon-ios-trash-outline" style="cursor:pointer;display: flex;font-size: 24px;position: relative;left:11" @click="delImg1(item)"></i>
</div>
</div>
</Form-item>
<!--
<Form-item label="商品图片" prop="itemImg"> <Form-item label="商品图片" prop="itemImg">
<i-input v-model="tbCfStationItem.itemImg" placeholder="商品图片"/> <img v-bind:src="tbCfStationItem.itemImg" style="width:200px;height:200px;" v-show="!!tbCfStationItem.itemImg"/>
<input type="file" placeholder="商品图片" @change="tirggerFile($event)"/>
</Form-item> </Form-item>
-->
<Form-item label="所属平台" prop="platformCode"> <Form-item label="所属平台" prop="platformCode">
<i-input v-model="tbCfStationItem.platformCode" placeholder="所属平台"/> <i-input v-model="tbCfStationItem.platformCode" placeholder="所属平台"/>
</Form-item> </Form-item>
......
...@@ -28,6 +28,7 @@ let vm = new Vue({ ...@@ -28,6 +28,7 @@ let vm = new Vue({
tbCfStationItem: {}, tbCfStationItem: {},
Goodstype:null, Goodstype:null,
Goodstype2:null, Goodstype2:null,
uploadList : [],
Goodstype3:null, Goodstype3:null,
ruleValidate: { ruleValidate: {
name: [ name: [
...@@ -41,34 +42,32 @@ let vm = new Vue({ ...@@ -41,34 +42,32 @@ let vm = new Vue({
methods: { methods: {
//获取一级分类 //获取一级分类
changeGoodstype(){ changeGoodstype(){
let url = `/africa_shop/tbcfstationitem/queryByItemType?typeId=${this.tbCfStationItem.itemCategory}` // console.log(this.tbCfStationItem.itemCategory);
//console.log('url',url) let url = "../tbcfstationitem/queryByItemType?typeId="+this.tbCfStationItem.itemCategory;
// console.log('url',url)
let that = this; let that = this;
Ajax.request({ Ajax.request({
url: url, url: url,
type: "get", type: "get",
contentType: "application/json", contentType: "application/json",
successCallback: function (r) { successCallback: function (r) {
console.log('res',r)
if(r.code===0){ if(r.code===0){
that.Goodstype2 = r.list that.Goodstype2 = r.list
console.log(that.Goodstype2)
} }
} }
}); });
}, },
changeGoodstype2(){ changeGoodstype2(){
let url = `/africa_shop/tbcfstationitem/queryByItemTypeTwo?typeTwoId=${this.tbCfStationItem.itemCategorytwo}` let url = "../tbcfstationitem/queryByItemTypeTwo?typeTwoId="+this.tbCfStationItem.itemCategorytwo;
let that = this; let that = this;
Ajax.request({ Ajax.request({
url: url, url: url,
type: "get", type: "get",
contentType: "application/json", contentType: "application/json",
successCallback: function (r) { successCallback: function (r) {
console.log('res',r)
if(r.code===0){ if(r.code===0){
that.Goodstype3 = r.descripiton that.Goodstype3 = r.descripiton
console.log(that.Goodstype3)
} }
} }
}); });
...@@ -92,6 +91,7 @@ let vm = new Vue({ ...@@ -92,6 +91,7 @@ let vm = new Vue({
vm.getInfo(itemId); vm.getInfo(itemId);
}, },
saveOrUpdate: function (event) { saveOrUpdate: function (event) {
vm.tbCfStationItem.itemImg = vm.uploadList[0];
let url = vm.tbCfStationItem.itemId == null ? "../tbcfstationitem/save" : "../tbcfstationitem/update"; let url = vm.tbCfStationItem.itemId == null ? "../tbcfstationitem/save" : "../tbcfstationitem/update";
Ajax.request({ Ajax.request({
url: url, url: url,
...@@ -131,6 +131,7 @@ let vm = new Vue({ ...@@ -131,6 +131,7 @@ let vm = new Vue({
async: true, async: true,
successCallback: function (r) { successCallback: function (r) {
vm.tbCfStationItem = r.tbCfStationItem; vm.tbCfStationItem = r.tbCfStationItem;
vm.uploadList[0] = vm.tbCfStationItem.itemImg;
} }
}); });
}, },
...@@ -156,7 +157,105 @@ let vm = new Vue({ ...@@ -156,7 +157,105 @@ let vm = new Vue({
}, },
handleReset: function (name) { handleReset: function (name) {
handleResetForm(this, name); handleResetForm(this, name);
},
/*
tirggerFile : function (event) {
var file = event.target.files[0]; // (利用console.log输出看file文件对象)
var formData = new FormData();
formData.append("file", file);
$.ajax({
url: "../tbcfstationitem/image/",
type: "POST",
data: formData,
cache: false, //不设置缓存
processData: false, // 不处理数据
contentType: false,// 不设置内容类型
success: function (result) {
result = JSON.parse(result);
console.log(result)
if (result.errno == 0) {//成功
vm.tbCfStationItem.itemImg = result.data;
console.log(vm.tbCfStationItem.itemImg)
vm.$forceUpdate();
} else {
iview.Message.error(result.errmsg);
}
}
});
}*/
/** ******************************************************************************************** */
handleSuccess (response, file, fileList) {
// "http://diaosaas-prod.oss-cn-shenzhen.aliyuncs.com/education/155728894307110106.jpg"
vm.uploadList.push(response);
$("#itemImg").show();
},
handleBeforeUpload (file) {
// 上传图片大小不超过5M
if (file.size > 5 * 1024 * 1024 ) {
alert('请上传不超过5M的图片');
return false;
}
const check = this.uploadList.length < 1;
if (!check) {
this.$Notice.warning({
title: '最多只能上传一张图片'
});
return false;
}
// 限制上传文件的宽高
// return this.checkImageWH(file,750,320);
},
// 限制上传图片的宽高
checkImageWH : function(file, width, height) {
let self = this;
return new Promise(function (resolve, reject) {
let filereader = new FileReader();
filereader.onload = e => {
console.log("2222");
let src = e.target.result;
const image = new Image();
image.onload = function () {
if (width && image.width != width) {
self.$Notice.error({
title: '请上传宽为' + width + "的图片",
});
reject();
} else if (height && image.height != height) {
self.$Notice.error({
title: '请上传高为' + height + "的图片",
});
reject();
} else {
resolve();
} }
};
image.onerror = reject;
image.src = src;
};
filereader.readAsDataURL(file);
});
},
// 删除上传图片
delImg1:function(url){
if (vm.title != "详情") {
vm.uploadList.remove(url);
console.log(url);
Ajax.request({
url: "../api/osstest/deletetest?url="+url,
async: false,
type: "POST",
contentType: "application/json",
successCallback: function (resultData) {
// console.log(resultData);
iview.Message.success(resultData.success);
}
});
}
},
/** ******************************************************************************************** */
}, },
created(){ created(){
var that = this var that = this
......
...@@ -139,5 +139,93 @@ ...@@ -139,5 +139,93 @@
<artifactId>jgroups</artifactId> <artifactId>jgroups</artifactId>
<version>${jgroups.version}</version> <version>${jgroups.version}</version>
</dependency> </dependency>
<!-- 我自己添加的 -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<!-- emoji -->
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>java-emoji-converter</artifactId>
<version>0.1.1</version>
</dependency>
<!-- 跨服务器文件上传 -->
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>
<!--QRCode -->
<dependency>
<groupId>QRCode</groupId>
<artifactId>QRCode</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>sun.misc</groupId>
<artifactId>sun.misc</artifactId>
<version>1.0</version>
</dependency>
<!-- 二维码生成工具 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.1</version>
</dependency>
<!-- 富文本编辑器 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>json</groupId>
<artifactId>json</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>ueditor</groupId>
<artifactId>ueditor</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -9,8 +9,10 @@ package com.platform.enums; ...@@ -9,8 +9,10 @@ package com.platform.enums;
public enum OssFolderNameEnum implements EnumItemable<OssFolderNameEnum> { public enum OssFolderNameEnum implements EnumItemable<OssFolderNameEnum> {
HOMEPAGE("首页", "homePage"), HOMEPAGE("首页", "homePage"),
STATION("商品独立站","stationItem"),
PROBLEM("问题", "problem"); PROBLEM("问题", "problem");
private String label; private String label;
private String value; private String value;
......
package com.platform.utils;
import java.util.UUID;
public class UuidUtil {
public static String get32UUID() {
String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
return uuid;
}
public static void main(String[] args) {
System.out.println(get32UUID());
}
}
package com.platform.utils.util;
import org.apache.commons.codec.binary.Base64;
//import Decoder.BASE64Encoder;
import java.io.*;
/**
* @author shkstart
* @create 2019-02-22-下午 4:47
* File和byte[]转换
*/
public class ByteAndFile {
/*
public static byte[] File2byte(String filePath)
{
byte[] buffer = null;
try
{
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1)
{
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return buffer;
}
*/
/*
public static File byte2File(byte[] buf, String filePath, String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
File dir = new File(filePath);
if (!dir.exists() && dir.isDirectory()) {
dir.mkdirs();
}
file = new File(filePath + File.separator + fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(buf);
return file;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}*/
/**
* 将输入流转为base64图片
* @author LHB
* @since JDK 1.8
* <img src=“data:image/png;base64,***************************************************"/>
public static String getBase64FromInputStream(InputStream in) {
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
byte[] data = null;
// 读取图片字节数组
try {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = in.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
data = swapStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
String string = new String(Base64.encodeBase64(data));
return "data:image/png;base64,"+string;
} */
/**
* 将输入流转为base64图片
* @author LHB
* @since JDK 1.8
* <img src=“data:image/png;base64,***************************************************"/>
*
* 没用过
public static <BASE64Encoder> String getImageStrFromPath(String url) {
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = FileDownload.getImageStream(url);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
// 返回Base64编码过的字节数组字符串
return encoder.encode(data);
} */
}
package com.platform.utils.util;
import org.springframework.context.ApplicationContext;
/**
* 项目名称:
*/
public class Const {
public static final String SESSION_SECURITY_CODE = "sessionSecCode"; //验证码
public static final String SESSION_USER = "sessionUser"; //session用的用户
public static final String SESSION_ROLE_RIGHTS = "sessionRoleRights";
public static final String sSESSION_ROLE_RIGHTS = "sessionRoleRights";
public static final String SESSION_menuList = "menuList"; //当前菜单
public static final String SESSION_allmenuList = "allmenuList"; //全部菜单
public static final String SESSION_QX = "QX";
public static final String SESSION_userpds = "userpds";
public static final String SESSION_USERROL = "USERROL"; //用户对象
public static final String SESSION_USERNAME = "USERNAME"; //用户名
public static final String DEPARTMENT_IDS = "DEPARTMENT_IDS"; //当前用户拥有的最高部门权限集合
public static final String DEPARTMENT_ID = "DEPARTMENT_ID"; //当前用户拥有的最高部门权限
public static final String TRUE = "T";
public static final String FALSE = "F";
public static final String BANKINFO = "admin/config/BANKINFO.txt"; //银行卡号查询文档
public static final String LOGIN = "/login_toLogin.do"; //登录地址
public static final String SYSNAME = "admin/config/SYSNAME.txt"; //系统名称路径
public static final String PAGE = "admin/config/PAGE.txt"; //分页条数配置路径
public static final String EMAIL = "admin/config/EMAIL.txt"; //邮箱服务器配置路径
public static final String SMS1 = "admin/config/SMS1.txt"; //短信账户配置路径1
public static final String SMS2 = "admin/config/SMS2.txt"; //短信账户配置路径2
public static final String FWATERM = "admin/config/FWATERM.txt"; //文字水印配置路径
public static final String IWATERM = "admin/config/IWATERM.txt"; //图片水印配置路径
public static final String WEIXIN = "admin/config/WEIXIN.txt"; //微信配置路径
public static final String WEBSOCKET = "admin/config/WEBSOCKET.txt"; //WEBSOCKET配置路径
public static final String LOGINEDIT = "admin/config/LOGIN.txt"; //登录页面配置
public static final String FILEPATHIMG = "uploadFiles/uploadImgs/"; //图片上传路径
public static final String FILEPATHFILE = "uploadFiles/file/"; //文件上传路径
public static final String FILEPATHFILEOA = "uploadFiles/uploadFile/"; //文件上传路径(oa管理)
public static final String FILEPATHTWODIMENSIONCODE = "uploadFiles/twoDimensionCode/"; //二维码存放路径
public static final String NO_INTERCEPTOR_PATH = ".*/((login)|(logout)|(code)|(app)|(weixin)|(static)|(main)|(api)|(websocket)|(uploadImgs)).*"; //不对匹配该值的访问路径拦截(正则)
public static ApplicationContext WEB_APP_CONTEXT = null; //该值会在web容器启动时由WebAppContextListener初始化
/**
* APP Constants
*/
//系统用户注册接口_请求协议参数)
public static final String[] SYSUSER_REGISTERED_PARAM_ARRAY = new String[]{"USERNAME","PASSWORD","NAME","EMAIL","rcode"};
public static final String[] SYSUSER_REGISTERED_VALUE_ARRAY = new String[]{"用户名","密码","姓名","邮箱","验证码"};
//app根据用户名获取会员信息接口_请求协议中的参数
public static final String[] APP_GETAPPUSER_PARAM_ARRAY = new String[]{"USERNAME"};
public static final String[] APP_GETAPPUSER_VALUE_ARRAY = new String[]{"用户名"};
}
package com.platform.utils.util;
/**
* 说明:
* @version
*/
public class Constants {
public static String PICTURE_VISIT_FILE_PATH = "";//图片访问的路径
public static String PICTURE_SAVE_FILE_PATH = "";//图片存放的路径
public static String getPICTURE_VISIT_FILE_PATH() {
return PICTURE_VISIT_FILE_PATH;
}
public static void setPICTURE_VISIT_FILE_PATH(String pICTURE_VISIT_FILE_PATH) {
PICTURE_VISIT_FILE_PATH = pICTURE_VISIT_FILE_PATH;
}
public static String getPICTURE_SAVE_FILE_PATH() {
return PICTURE_SAVE_FILE_PATH;
}
public static void setPICTURE_SAVE_FILE_PATH(String pICTURE_SAVE_FILE_PATH) {
PICTURE_SAVE_FILE_PATH = pICTURE_SAVE_FILE_PATH;
}
public static void main(String[] args) {
Constants.setPICTURE_SAVE_FILE_PATH("D:/Tomcat 6.0/webapps/FH/topic/");
Constants.setPICTURE_VISIT_FILE_PATH("http://192.168.1.225:8888/FH/topic/");
}
}
package com.platform.utils.util;
import java.io.File;
/**
* java删除所有文件和文件夹
* @version
*/
public class DelAllFile {
public static void main(String args[]) {
delFolder("e:/e/a"); //只删除e下面a及a下面所有文件和文件夹,e不会被删掉
//delFolder("D:/WEBSerser/apache-tomcat-8.0.15/me-webapps/UIMYSQL/WEB-INF/classes/../../admin00/ftl/code");
//delFolder("D:\\WEBSerser\\apache-tomcat-8.0.15\\me-webapps\\UIMYSQL\\admin00\\ftl\\code");
//delFolder("D:/WEBSerser/apache-tomcat-8.0.15/me-webapps/UIMYSQL/WEB-INF/classes/../../admin00/ftl/code");
System.out.println("deleted");
}
/**
* @param folderPath 文件路径 (只删除此路径的最末路径下所有文件和文件夹)
*/
public static void delFolder(String folderPath) {
try {
delAllFile(folderPath); // 删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
File myFilePath = new File(filePath);
myFilePath.delete(); // 删除空文件夹
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除指定文件夹下所有文件
* @param path 文件夹完整绝对路径
*/
public static boolean delAllFile(String path) {
boolean flag = false;
File file = new File(path);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path + "/" + tempList[i]); // 先删除文件夹里面的文件
delFolder(path + "/" + tempList[i]); // 再删除空文件夹
flag = true;
}
}
return flag;
}
}
package com.platform.utils.util;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.github.binarywang.java.emoji.EmojiConverter;
import com.vdurmont.emoji.EmojiParser;
import com.vdurmont.emoji.EmojiParser.EmojiTransformer;
import com.vdurmont.emoji.EmojiParser.UnicodeCandidate;
public class Emoji extends EmojiParser {
/**
* 获取非表情字符串
*
* @param input
* @return
*/
public static String getNonEmojiString(String input) {
int prev = 0;
StringBuilder sb = new StringBuilder();
List<UnicodeCandidate> replacements = getUnicodeCandidates(input);
for (UnicodeCandidate candidate : replacements) {
sb.append(input.substring(prev, candidate.getEmojiStartIndex()));
prev = candidate.getFitzpatrickEndIndex();
}
return sb.append(input.substring(prev)).toString();
}
/**
* 获取表情字符串
*
* @param input
* @return
*/
public static String getEmojiUnicodeString(String input) {
EmojiTransformer transformer = new EmojiTransformer() {
public String transform(UnicodeCandidate unicodeCandidate) {
return unicodeCandidate.getEmoji().getHtmlHexadecimal();
}
};
StringBuilder sb = new StringBuilder();
List<UnicodeCandidate> replacements = getUnicodeCandidates(input);
for (UnicodeCandidate candidate : replacements) {
sb.append(transformer.transform(candidate));
}
return parseToUnicode(sb.toString());
}
public static String getUnicode(String source) {
String returnUniCode = null;
String uniCodeTemp = null;
for (int i = 0; i < source.length(); i++) {
uniCodeTemp = "\\u" + Integer.toHexString((int) source.charAt(i));
returnUniCode = returnUniCode == null ? uniCodeTemp : returnUniCode + uniCodeTemp;
}
return returnUniCode;
}
/**
* 判断是否包含emoji表情
*
* @return 过滤后的结果
*/
public static boolean checkEmoji(String source) {
if (StringUtils.isNotBlank(source)) {
return source.matches("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]");
} else {
return false;
}
}
/**
* emoji表情替换
*
* @param source 原字符串
* @param slipStr emoji表情替换成的字符串
* @return 过滤后的字符串
*/
public static String filterEmoji(String source,String slipStr) {
if(StringUtils.isNotBlank(source)){
return source.replaceAll("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]", slipStr);
}else{
return source;
}
}
public static void main(String[] args) throws Exception {
String content2 = "傻逼\ud83d\ude0f\ud83d\ude0fVincent\ud83d\udc36 Vincent";
String string ="Vincent\ud83d\udc36";
String bString = unicodeToUtf8(string);
System.out.println(bString);
//String string2 = emojiConverterUnicodeStr(content2);
String string3 = emojiConverterToAlias(content2);
String emojiConverterUnicodeStr = emojiConverterUnicodeStr(string3);
System.out.println(string3);
System.out.println(emojiConverterUnicodeStr);
}
/**
* unicode 转换成 utf-8
*
* @author fanhui 2007-3-15
* @param theString
* @return
*/
public static String unicodeToUtf8(String theString) {
char aChar;
int len = theString.length();
StringBuffer outBuffer = new StringBuffer(len);
for (int x = 0; x < len;) {
aChar = theString.charAt(x++);
if (aChar == '\\') {
aChar = theString.charAt(x++);
if (aChar == 'u') {
// Read the xxxx
int value = 0;
for (int i = 0; i < 4; i++) {
aChar = theString.charAt(x++);
switch (aChar) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
value = (value << 4) + aChar - '0';
break;
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
value = (value << 4) + 10 + aChar - 'a';
break;
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
value = (value << 4) + 10 + aChar - 'A';
break;
default:
throw new IllegalArgumentException("Malformed \\uxxxx encoding.");
}
}
outBuffer.append((char) value);
} else {
if (aChar == 't')
aChar = '\t';
else if (aChar == 'r')
aChar = '\r';
else if (aChar == 'n')
aChar = '\n';
else if (aChar == 'f')
aChar = '\f';
outBuffer.append(aChar);
}
} else
outBuffer.append(aChar);
}
return outBuffer.toString();
}
private static EmojiConverter emojiConverter = EmojiConverter.getInstance();
/**
* 将emojiStr转为 带有表情的字符
* @param emojiStr
* @return
*/
public static String emojiConverterUnicodeStr(String emojiStr){
String result = emojiConverter.toUnicode(emojiStr);
return result;
}
/**
* 带有表情的字符串转换为编码
* @param str
* @return
*/
public static String emojiConverterToAlias(String str){
String result=emojiConverter.toAlias(str);
return result;
}
}
package com.platform.utils.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
/**
*   
*
* @Title: FastJsonUtil.java
* @Package com.jarvis.base.util
* @Description:fastjson工具类
* @author Jack 
* @date 2017年9月2日 下午4:16:27
* @version V1.0  
*/
public class FastJsonUtil {
private static final SerializeConfig config;
static {
config = new SerializeConfig();
config.put(java.util.Date.class, new JSONLibDataFormatSerializer()); // 使用和json-lib兼容的日期输出格式
config.put(java.sql.Date.class, new JSONLibDataFormatSerializer()); // 使用和json-lib兼容的日期输出格式
}
private static final SerializerFeature[] features = { SerializerFeature.WriteMapNullValue, // 输出空置字段
SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是null
SerializerFeature.WriteNullNumberAsZero, // 数值字段如果为null,输出为0,而不是null
SerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是null
SerializerFeature.WriteNullStringAsEmpty, // 字符类型字段如果为null,输出为"",而不是null
SerializerFeature.PrettyFormat //是否需要格式化输出Json数据
};
/**
* Author:Jack Time:2017年9月2日下午4:24:14
*
* @param object
* @return Return:String Description:将对象转成成Json对象
*/
public static String toJSONString(Object object) {
return JSON.toJSONString(object, config, features);
}
/**
* Author:Jack Time:2017年9月2日下午4:27:25
*
* @param object
* @return Return:String Description:使用和json-lib兼容的日期输出格式
*/
public static String toJSONNoFeatures(Object object) {
return JSON.toJSONString(object, config);
}
/**
* Author:Jack Time:2017年9月2日下午4:24:54
*
* @param jsonStr
* @return Return:Object Description:将Json数据转换成JSONObject
*/
public static JSONObject toJsonObj(String jsonStr) {
return (JSONObject) JSON.parse(jsonStr);
}
/**
* Author:Jack Time:2017年9月2日下午4:25:20
*
* @param jsonStr
* @param clazz
* @return Return:T Description:将Json数据转换成Object
*/
public static <T> T toBean(String jsonStr, Class<T> clazz) {
return JSON.parseObject(jsonStr, clazz);
}
/**
* Author:Jack Time:2017年9月2日下午4:25:34
*
* @param jsonStr
* @return Return:Object[] Description:将Json数据转换为数组
*/
public static <T> Object[] toArray(String jsonStr) {
return toArray(jsonStr, null);
}
/**
* Author:Jack Time:2017年9月2日下午4:25:57
*
* @param jsonStr
* @param clazz
* @return Return:Object[] Description:将Json数据转换为数组
*/
public static <T> Object[] toArray(String jsonStr, Class<T> clazz) {
return JSON.parseArray(jsonStr, clazz).toArray();
}
/**
* Author:Jack Time:2017年9月2日下午4:26:08
*
* @param jsonStr
* @param clazz
* @return Return:List<T> Description:将Json数据转换为List
*/
public static <T> List<T> toList(String jsonStr, Class<T> clazz) {
return JSON.parseArray(jsonStr, clazz);
}
/**
* 将javabean转化为序列化的JSONObject对象
*
* @param keyvalue
* @return
*/
public static JSONObject beanToJsonObj(Object bean) {
String jsonStr = JSON.toJSONString(bean);
JSONObject objectJson = (JSONObject) JSON.parse(jsonStr);
return objectJson;
}
/**
* json字符串转化为map
*
* @param s
* @return
*/
public static Map<?, ?> stringToCollect(String jsonStr) {
Map<?, ?> map = JSONObject.parseObject(jsonStr);
return map;
}
/**
* 将map转化为string
*
* @param m
* @return
*/
public static String collectToString(Map<?, ?> map) {
String jsonStr = JSONObject.toJSONString(map);
return jsonStr;
}
/**
* Author:Jack Time:2017年9月2日下午4:19:00
*
* @param t
* @param file
* @throws IOException
* Return:void Description:将对象的Json数据写入文件。
*/
public static <T> void writeJsonToFile(T t, File file) throws IOException {
String jsonStr = JSONObject.toJSONString(t, SerializerFeature.PrettyFormat);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
bw.write(jsonStr);
bw.close();
}
/**
* Author:Jack Time:2017年9月2日下午4:19:12
*
* @param t
* @param filename
* @throws IOException
* Return:void Description:将对象的Json数据写入文件。
*/
public static <T> void writeJsonToFile(T t, String filename) throws IOException {
writeJsonToFile(t, new File(filename));
}
/**
* Author:Jack Time:2017年9月2日下午4:22:07
*
* @param cls
* @param file
* @return
* @throws IOException
* Return:T Description:将文件中的Json数据转换成Object对象
*/
public static <T> T readJsonFromFile(Class<T> cls, File file) throws IOException {
StringBuilder strBuilder = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = null;
while ((line = br.readLine()) != null) {
strBuilder.append(line);
}
br.close();
return JSONObject.parseObject(strBuilder.toString(), cls);
}
/**
* Author:Jack Time:2017年9月2日下午4:22:30
*
* @param cls
* @param filename
* @return
* @throws IOException
* Return:T Description:将文件中的Json数据转换成Object对象
*/
public static <T> T readJsonFromFile(Class<T> cls, String filename) throws IOException {
return readJsonFromFile(cls, new File(filename));
}
/**
* Author:Jack Time:2017年9月2日下午4:23:06
*
* @param typeReference
* @param file
* @return
* @throws IOException
* Return:T Description:从文件中读取出Json对象
*/
public static <T> T readJsonFromFile(TypeReference<T> typeReference, File file) throws IOException {
StringBuilder strBuilder = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = null;
while ((line = br.readLine()) != null) {
strBuilder.append(line);
}
br.close();
return JSONObject.parseObject(strBuilder.toString(), typeReference);
}
/**
* Author:Jack Time:2017年9月2日下午4:23:11
*
* @param typeReference
* @param filename
* @return
* @throws IOException
* Return:T Description:从文件中读取出Json对象
*/
public static <T> T readJsonFromFile(TypeReference<T> typeReference, String filename) throws IOException {
return readJsonFromFile(typeReference, new File(filename));
}
}
\ No newline at end of file
package com.platform.utils.util;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletResponse;
import com.google.common.io.ByteStreams;
/**
* 下载文件
* @version
*/
public class FileDownload {
/**
* @param response
* @param filePath //文件完整路径(包括文件名和扩展名)
* @param fileName //下载后看到的文件名
* @return 文件名
*/
public static void fileDownload(final HttpServletResponse response, String filePath, String fileName) throws Exception{
byte[] data = FileUtil.toByteArray2(filePath);
fileName = URLEncoder.encode(fileName, "UTF-8");
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream;charset=UTF-8");
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(data);
outputStream.flush();
outputStream.close();
response.flushBuffer();
}
/**
* @param response
* @param url http://aidiyuns......jpg
* @param fileName //下载后看到的文件名
* @return 文件名
*/
public static void fileDownload2(HttpServletResponse response, String url, String fileName) throws Exception{
// 获取文件后缀
String prefix=url.substring(url.lastIndexOf("."));
fileName = fileName+prefix;
InputStream inputStream = FileDownload.getImageStream(url);
byte[] fileByte = ByteStreams.toByteArray(inputStream);
fileName = URLEncoder.encode(fileName, "UTF-8");
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.addHeader("Content-Length", "" + fileByte.length);
response.setContentType("application/octet-stream;charset=UTF-8");
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(fileByte);
outputStream.flush();
outputStream.close();
response.flushBuffer();
}
/**
* 通过URL获取网络图片 https://blog.csdn.net/x541211190/article/details/80784582
* 获取网络图片流
*
* @param url 传入的URL必须是以http://开头的,因为我们使用了HttpURLConnection,示例:
* @return
*/
public static InputStream getImageStream(String url) {
try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
return inputStream;
}
} catch (IOException e) {
System.out.println("获取网络图片出现异常,图片路径为:" + url);
e.printStackTrace();
}
return null;
}
}
package com.platform.utils.util;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;
/**
* 上传文件
* @version
*/
public class FileUpload {
/**上传文件
* @param file //文件对象
* @param filePath //上传路径
* @param fileName //文件名
* @return 文件名
*/
public static String fileUp(MultipartFile file, String filePath, String fileName){
String extName = ""; // 扩展名格式:
try {
if (file.getOriginalFilename().lastIndexOf(".") >= 0){
extName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
}
copyFile(file.getInputStream(), filePath, fileName+extName).replaceAll("-", "");
} catch (IOException e) {
System.out.println(e);
}
return fileName+extName;
}
/**
* 写文件到当前目录的upload目录中
* @param in
* @param fileName
* @throws IOException
*/
private static String copyFile(InputStream in, String dir, String realName)
throws IOException {
File file = mkdirsmy(dir,realName);
FileUtils.copyInputStreamToFile(in, file);
return realName;
}
/**判断路径是否存在,否:创建此路径
* @param dir 文件路径
* @param realName 文件名
* @throws IOException
*/
public static File mkdirsmy(String dir, String realName) throws IOException{
File file = new File(dir, realName);
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
}
return file;
}
/**下载网络图片上传到服务器上
* @param httpUrl 图片网络地址
* @param filePath 图片保存路径
* @param myFileName 图片文件名(null时用网络图片原名)
* @return 返回图片名称
*/
public static String getHtmlPicture(String httpUrl, String filePath , String myFileName) {
URL url; //定义URL对象url
BufferedInputStream in; //定义输入字节缓冲流对象in
FileOutputStream file; //定义文件输出流对象file
try {
String fileName = null == myFileName?httpUrl.substring(httpUrl.lastIndexOf("/")).replace("/", ""):myFileName; //图片文件名(null时用网络图片原名)
url = new URL(httpUrl); //初始化url对象
in = new BufferedInputStream(url.openStream()); //初始化in对象,也就是获得url字节流
//file = new FileOutputStream(new File(filePath +"\\"+ fileName));
file = new FileOutputStream(mkdirsmy(filePath,fileName));
int t;
while ((t = in.read()) != -1) {
file.write(t);
}
file.close();
in.close();
return fileName;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
package com.platform.utils.util;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
/** 文件处理
* 创建时间:2014年12月23日
*/
public class FileUtil {
/**获取文件大小 返回 KB 保留3位小数 没有文件时返回0
* @param filepath 文件完整路径,包括文件名
* @return
*/
public static Double getFilesize(String filepath){
File backupath = new File(filepath);
return Double.valueOf(backupath.length())/1000.000;
}
/**
* 创建目录
* @param destDirName目标目录名
* @return
*/
public static Boolean createDir(String destDirName) {
File dir = new File(destDirName);
if(!dir.getParentFile().exists()){ //判断有没有父路径,就是判断文件整个路径是否存在
return dir.getParentFile().mkdirs(); //不存在就全部创建
}
return false;
}
/**
* 删除文件
* @param filePathAndName
* String 文件路径及名称 如c:/fqf.txt
* @param fileContent
* String
* @return boolean
*/
public static void delFile(String filePathAndName) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
File myDelFile = new File(filePath);
myDelFile.delete();
} catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();
}
}
/**
* 读取到字节数组0
* @param filePath //路径
* @throws IOException
*/
public static byte[] getContent(String filePath) throws IOException {
File file = new File(filePath);
long fileSize = file.length();
if (fileSize > Integer.MAX_VALUE) {
System.out.println("file too big...");
return null;
}
FileInputStream fi = new FileInputStream(file);
byte[] buffer = new byte[(int) fileSize];
int offset = 0;
int numRead = 0;
while (offset < buffer.length
&& (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) {
offset += numRead;
}
// 确保所有数据均被读取
if (offset != buffer.length) {
throw new IOException("Could not completely read file " + file.getName());
}
fi.close();
return buffer;
}
/**
* 读取到字节数组1
*
* @param filePath
* @return
* @throws IOException
*/
public static byte[] toByteArray(String filePath) throws IOException {
File f = new File(filePath);
if (!f.exists()) {
throw new FileNotFoundException(filePath);
}
ByteArrayOutputStream bos = new ByteArrayOutputStream((int) f.length());
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(f));
int buf_size = 1024;
byte[] buffer = new byte[buf_size];
int len = 0;
while (-1 != (len = in.read(buffer, 0, buf_size))) {
bos.write(buffer, 0, len);
}
return bos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
bos.close();
}
}
/**
* 读取到字节数组2
*
* @param filePath
* @return
* @throws IOException
*/
public static byte[] toByteArray2(String filePath) throws IOException {
File f = new File(filePath);
if (!f.exists()) {
throw new FileNotFoundException(filePath);
}
FileChannel channel = null;
FileInputStream fs = null;
try {
fs = new FileInputStream(f);
channel = fs.getChannel();
ByteBuffer byteBuffer = ByteBuffer.allocate((int) channel.size());
while ((channel.read(byteBuffer)) > 0) {
// do nothing
// System.out.println("reading");
}
return byteBuffer.array();
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
try {
channel.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Mapped File way MappedByteBuffer 可以在处理大文件时,提升性能
*
* @param filename
* @return
* @throws IOException
*/
public static byte[] toByteArray3(String filePath) throws IOException {
FileChannel fc = null;
RandomAccessFile rf = null;
try {
rf = new RandomAccessFile(filePath, "r");
fc = rf.getChannel();
MappedByteBuffer byteBuffer = fc.map(MapMode.READ_ONLY, 0,
fc.size()).load();
//System.out.println(byteBuffer.isLoaded());
byte[] result = new byte[(int) fc.size()];
if (byteBuffer.remaining() > 0) {
// System.out.println("remain");
byteBuffer.get(result, 0, byteBuffer.remaining());
}
return result;
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
try {
rf.close();
fc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
\ No newline at end of file
package com.platform.utils.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**java压缩成zip
* 创建时间:2015年1月14日
*/
public class FileZip {
/**
* @param inputFileName 你要压缩的文件夹(整个完整路径)
* @param zipFileName 压缩后的文件(整个完整路径)
* @throws Exception
*/
public static Boolean zip(String inputFileName, String zipFileName) throws Exception {
zip(zipFileName, new File(inputFileName));
return true;
}
private static void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, "");
out.flush();
out.close();
}
private static void zip(ZipOutputStream out, File f, String base) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
out.putNextEntry(new ZipEntry(base + "/"));
base = base.length() == 0 ? "" : base + "/";
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + fl[i].getName());
}
} else {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
//System.out.println(base);
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}
public static void main(String [] temp){
try {
zip("E:\\ftl","E:\\test.zip");//你要压缩的文件夹 和 压缩后的文件
}catch (Exception ex) {
ex.printStackTrace();
}
}
}
//=====================文件压缩=========================
/*//把文件压缩成zip
File zipFile = new File("E:/demo.zip");
//定义输入文件流
InputStream input = new FileInputStream(file);
//定义压缩输出流
ZipOutputStream zipOut = null;
//实例化压缩输出流,并制定压缩文件的输出路径 就是E盘下,名字叫 demo.zip
zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
zipOut.putNextEntry(new ZipEntry(file.getName()));
//设置注释
zipOut.setComment("www.demo.com");
int temp = 0;
while((temp = input.read()) != -1) {
zipOut.write(temp);
}
input.close();
zipOut.close();*/
//==============================================
package com.platform.utils.util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Locale;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
* Freemarker 模版引擎类
* 创建时间:2015年2月8日
* @version
*/
public class Freemarker {
/**
* 打印到控制台(测试用)
* @param ftlName
*/
public static void print(String ftlName, Map<String,Object> root, String ftlPath) throws Exception{
try {
Template temp = getTemplate(ftlName, ftlPath); //通过Template可以将模板文件输出到相应的流
temp.process(root, new PrintWriter(System.out));
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 输出到输出到文件
* @param ftlName ftl文件名
* @param root 传入的map
* @param outFile 输出后的文件全部路径
* @param filePath 输出前的文件上部路径
*/
public static void printFile(String ftlName, Map<String,Object> root, String outFile, String filePath, String ftlPath) throws Exception{
try {
File file = new File(PathUtil.getClasspath() + filePath + outFile);
if(!file.getParentFile().exists()){ //判断有没有父路径,就是判断文件整个路径是否存在
file.getParentFile().mkdirs(); //不存在就全部创建
}
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"));
Template template = getTemplate(ftlName, ftlPath);
template.process(root, out); //模版输出
out.flush();
out.close();
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 通过文件名加载模版
* @param ftlName
*/
public static Template getTemplate(String ftlName, String ftlPath) throws Exception{
try {
Configuration cfg = new Configuration(); //通过Freemaker的Configuration读取相应的ftl
cfg.setEncoding(Locale.CHINA, "utf-8");
cfg.setDirectoryForTemplateLoading(new File(PathUtil.getClassResources()+"/ftl/"+ftlPath)); //设定去哪里读取相应的ftl模板文件
Template temp = cfg.getTemplate(ftlName); //在模板文件目录中找到名称为name的文件
return temp;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
package com.platform.utils.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* @version
*/
public class GetWeb {
/**
* 获取当前网页的code
*
* @param httpUrl
* 网页地址
* @return
* @throws IOException
*/
public static String getHtmlCode(String httpUrl) throws IOException {
String content = ""; // 定义字符串content
URL url = new URL(httpUrl); // 生成传入的URL的对象
BufferedReader reader = new BufferedReader(new InputStreamReader(
url.openStream(), "utf-8"));// 获得当前url的字节流(缓冲)
String input;
while ((input = reader.readLine()) != null) { // 当前行存在数据时
content += input; // 将读取数据赋给content
}
reader.close(); // 关闭缓冲区
return content;
}
/**
* 把网页中的所有图片的完整路径放到list里面
*
* @param wwwurl
* 要爬的网页连接
* @throws IOException
*/
public static List<String> getImagePathList(String httpUrl)
throws IOException {
// 通过扩展名匹配网页图片的正则表达式
// String searchImgReg =
// "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
// String searchImgReg2 =
// "(?x)(src|SRC|background|BACKGROUND)=('|\")(http://([\\w-]+\\.)+[\\w-]+(:[0-9]+)*(/[\\w-]+)*(/[\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
// 通过img标签匹配网页图片的正则表达式
String searchImgReg = "<(img|IMG)\\b[^>]*\\b(src|SRC|src2|SRC2)\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg|\\.bmp|\\.eps|\\.gif|\\.mif|\\.miff|\\.png|\\.tif|\\.tiff|\\.svg|\\.wmf|\\.jpe|\\.jpeg|\\.dib|\\.ico|\\.tga|\\.cut|\\.pic)\\b)[^>]*>";
List<String> imgList = new ArrayList<String>(); // 存放图片的list
String content = null;
content = getHtmlCode(httpUrl); // 获得content
Pattern pattern = Pattern.compile(searchImgReg); // 讲编译的正则表达式对象赋给pattern
Matcher matcher = pattern.matcher(content); // 对字符串content执行正则表达式
while (matcher.find()) {
String quote = matcher.group(3);
String imgsrc = (quote == null || quote.trim().length() == 0) ? matcher.group(4).split("\\s+")[0] : matcher.group(4);
if (!imgsrc.startsWith("http://") && !imgsrc.startsWith("https://")) { // 检验地址是否http://
String[] httpUrlarr = httpUrl.split("/");
String wwwhost = httpUrlarr[0] + "//" + httpUrlarr[2]; //获取域名完整地址 http://www.xxx.com
if(!isNetFileAvailable(wwwhost + "/" + imgsrc)){
for(int i=3;i<httpUrlarr.length;i++){
wwwhost = wwwhost + "/" + httpUrlarr[i];
if(isNetFileAvailable(wwwhost + "/" + imgsrc)){
imgsrc = wwwhost + "/" + imgsrc;
break;
}
}
}else{
imgsrc = wwwhost + "/" + imgsrc;
}
}
imgList.add(imgsrc);
}
return imgList;
}
/**
* 获取网页的标题
*
* @param httpUrl
* 要爬的网页连接
* @return
*/
public static String getTilte(String httpUrl) {
String searchTitle = "(<title>|<TITLE>)(.*?)(</title>|</TITLE>)"; // 获取网页的标题的正则表达式
Pattern pattern = Pattern.compile(searchTitle); // 获得content
try {
Matcher matcher = pattern.matcher(getHtmlCode(httpUrl));
while (matcher.find()) {
return matcher.group(2);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 检测网络资源是否存在 
*
* @param strUrl
* @return
*/
public static boolean isNetFileAvailable(String strUrl) {
InputStream netFileInputStream = null;
try {
URL url = new URL(strUrl);
URLConnection urlConn = url.openConnection();
netFileInputStream = urlConn.getInputStream();
if (null != netFileInputStream) {
return true;
} else {
return false;
}
} catch (IOException e) {
return false;
} finally {
try {
if (netFileInputStream != null)
netFileInputStream.close();
} catch (IOException e) {
}
}
}
}
// 创建人:FH Q 31 359 679 0
\ No newline at end of file
package com.platform.utils.util;
public class ImageUploadResult {
public String state;
public String url;
public String title;
public String original;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getOriginal() {
return original;
}
public void setOriginal(String original) {
this.original = original;
}
}
package com.platform.utils.util;
/**
* 说明:
* @version
*/
public class LatLonUtil {
private static final double PI = 3.14159265; // 圆周率
private static final double EARTH_RADIUS = 6378137; // 地球半径
private static final double RAD = Math.PI / 180.0; // 一百八十度角
/**
* @param raidus
* 单位米 return minLat
* 最小经度 minLng
* 最小纬度 maxLat
* 最大经度 maxLng
* 最大纬度 minLat
*/
public static double[] getAround(double lat, double lon, int raidus) {
Double latitude = lat;// 传值给经度
Double longitude = lon;// 传值给纬度
Double degree = (24901 * 1609) / 360.0; // 获取每度
double raidusMile = raidus;
Double dpmLat = 1 / degree;
Double radiusLat = dpmLat * raidusMile;
// 获取最小纬度
Double minLat = latitude - radiusLat;
// 获取最大纬度
Double maxLat = latitude + radiusLat;
Double mpdLng = degree * Math.cos(latitude * (PI / 180));
Double dpmLng = 1 / mpdLng;
Double radiusLng = dpmLng * raidusMile;
//获取最小经度
Double minLng = longitude - radiusLng;
// 获取最大经度
Double maxLng = longitude + radiusLng;
System.out.println("jingdu" + minLat + "weidu" + minLng + "zuidajingdu"
+ maxLat + "zuidaweidu" + maxLng);
return new double[] { minLat, minLng, maxLat, maxLng };
}
//测试方法
public static void main(String [] src){
getAround(36.68027, 117.12744, 1000);
}
}
\ No newline at end of file
package com.platform.utils.util;
/**
* 说明:日志处理
* @version
*/
public class Logger {
private org.apache.log4j.Logger logger;
/**
* 构造方法,初始化Log4j的日志对象
*/
private Logger(org.apache.log4j.Logger log4jLogger) {
logger = log4jLogger;
}
/**
* 获取构造器,根据类初始化Logger对象
*
* @param Class
* Class对象
* @return Logger对象
*/
public static Logger getLogger(Class classObject) {
return new Logger(org.apache.log4j.Logger.getLogger(classObject));
}
/**
* 获取构造器,根据类名初始化Logger对象
*
* @param String
* 类名字符串
* @return Logger对象
*/
public static Logger getLogger(String loggerName) {
return new Logger(org.apache.log4j.Logger.getLogger(loggerName));
}
public void debug(Object object) {
logger.debug(object);
}
public void debug(Object object, Throwable e) {
logger.debug(object, e);
}
public void info(Object object) {
logger.info(object);
}
public void info(Object object, Throwable e) {
logger.info(object, e);
}
public void warn(Object object) {
logger.warn(object);
}
public void warn(Object object, Throwable e) {
logger.warn(object, e);
}
public void error(Object object) {
logger.error(object);
}
public void error(Object object, Throwable e) {
logger.error(object, e);
}
public void fatal(Object object) {
logger.fatal(object);
}
public String getName() {
return logger.getName();
}
public org.apache.log4j.Logger getLog4jLogger() {
return logger;
}
public boolean equals(Logger newLogger) {
return logger.equals(newLogger.getLog4jLogger());
}
}
\ No newline at end of file
package com.platform.utils.util;
import java.security.MessageDigest;
/**
* 说明:MD5处理
* 修改时间:2014年9月20日
* @version
*/
public class MD5 {
public static String md5(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
str = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public static void main(String[] args) {
System.out.println(md5("31119@qq.com"+"123456"));
System.out.println(md5("mj1"));
}
}
package com.platform.utils.util;
import java.util.HashMap;
import java.util.Map;
/**
* 说明:经纬度处理
* 修改时间:2014年9月20日
* @version
*/
public class MapDistance {
private static double EARTH_RADIUS = 6378.137;
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 根据两个位置的经纬度,来计算两地的距离(单位为KM)
* 参数为String类型
* @param lat1 用户经度
* @param lng1 用户纬度
* @param lat2 商家经度
* @param lng2 商家纬度
* @return
*/
public static String getDistance(String lat1Str, String lng1Str, String lat2Str, String lng2Str) {
Double lat1 = Double.parseDouble(lat1Str);
Double lng1 = Double.parseDouble(lng1Str);
Double lat2 = Double.parseDouble(lat2Str);
Double lng2 = Double.parseDouble(lng2Str);
double patm = 2;
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double difference = radLat1 - radLat2;
double mdifference = rad(lng1) - rad(lng2);
double distance = patm * Math.asin(Math.sqrt(Math.pow(Math.sin(difference / patm), patm)
+ Math.cos(radLat1) * Math.cos(radLat2)
* Math.pow(Math.sin(mdifference / patm), patm)));
distance = distance * EARTH_RADIUS;
String distanceStr = String.valueOf(distance);
return distanceStr;
}
/**
* 获取当前用户一定距离以内的经纬度值
* 单位米 return minLat
* 最小经度 minLng
* 最小纬度 maxLat
* 最大经度 maxLng
* 最大纬度 minLat
*/
public static Map getAround(String latStr, String lngStr, String raidus) {
Map map = new HashMap();
Double latitude = Double.parseDouble(latStr);// 传值给经度
Double longitude = Double.parseDouble(lngStr);// 传值给纬度
Double degree = (24901 * 1609) / 360.0; // 获取每度
double raidusMile = Double.parseDouble(raidus);
Double mpdLng = Double.parseDouble((degree * Math.cos(latitude * (Math.PI / 180))+"").replace("-", ""));
Double dpmLng = 1 / mpdLng;
Double radiusLng = dpmLng * raidusMile;
//获取最小经度
Double minLat = longitude - radiusLng;
// 获取最大经度
Double maxLat = longitude + radiusLng;
Double dpmLat = 1 / degree;
Double radiusLat = dpmLat * raidusMile;
// 获取最小纬度
Double minLng = latitude - radiusLat;
// 获取最大纬度
Double maxLng = latitude + radiusLat;
map.put("minLat", minLat+"");
map.put("maxLat", maxLat+"");
map.put("minLng", minLng+"");
map.put("maxLng", maxLng+"");
return map;
}
public static void main(String[] args) {
//济南国际会展中心经纬度:117.11811 36.68484
//趵突泉:117.00999000000002 36.66123
System.out.println(getDistance("116.97265","36.694514","116.597805","36.738024"));
System.out.println(getAround("117.11811", "36.68484", "13000"));
//117.01028712333508(Double), 117.22593287666493(Double),
//36.44829619896034(Double), 36.92138380103966(Double)
}
}
package com.platform.utils.util;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* 从EXCEL导入到数据库
* @version
*/
public class ObjectExcelRead {
/**
* @param filepath //文件路径
* @param filename //文件名
* @param startrow //开始行号
* @param startcol //开始列号
* @param sheetnum //sheet
* @return list
*/
public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List<Object> varList = new ArrayList<Object>();
try {
File target = new File(filepath, filename);
FileInputStream fi = new FileInputStream(target);
HSSFWorkbook wb = new HSSFWorkbook(fi);
HSSFSheet sheet = wb.getSheetAt(sheetnum); //sheet 从0开始
int rowNum = sheet.getLastRowNum() + 1; //取得最后一行的行号
for (int i = startrow; i < rowNum; i++) { //行循环开始
Map varpd = new HashMap<>();
HSSFRow row = sheet.getRow(i); //行
int cellNum = row.getLastCellNum(); //每行的最后一个单元格位置
for (int j = startcol; j < cellNum; j++) { //列循环开始
HSSFCell cell = row.getCell(Short.parseShort(j + ""));
String cellValue = null;
if (null != cell) {
switch (cell.getCellType()) { // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
case 0:
cellValue = String.valueOf((int) cell.getNumericCellValue());
break;
case 1:
cellValue = cell.getStringCellValue();
break;
case 2:
cellValue = cell.getNumericCellValue() + "";
// cellValue = String.valueOf(cell.getDateCellValue());
break;
case 3:
cellValue = "";
break;
case 4:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
case 5:
cellValue = String.valueOf(cell.getErrorCellValue());
break;
}
} else {
cellValue = "";
}
varpd.put("var"+j, cellValue);
}
varList.add(varpd);
}
} catch (Exception e) {
System.out.println(e);
}
return varList;
}
}
package com.platform.utils.util;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.web.servlet.view.document.AbstractExcelView;
/**
* 导入到EXCEL
* @version 1.0
*/
public class ObjectExcelView extends AbstractExcelView{
@Override
protected void buildExcelDocument(Map<String, Object> model,
HSSFWorkbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
Date date = new Date();
String filename = Tools.date2Str(date, "yyyyMMddHHmmss");
HSSFSheet sheet;
HSSFCell cell;
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
sheet = workbook.createSheet("sheet1");
List<String> titles = (List<String>) model.get("titles");
int len = titles.size();
HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式
headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont headerFont = workbook.createFont(); //标题字体
headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headerFont.setFontHeightInPoints((short)11);
headerStyle.setFont(headerFont);
short width = 20,height=25*20;
sheet.setDefaultColumnWidth(width);
for(int i=0; i<len; i++){ //设置标题
String title = titles.get(i);
cell = getCell(sheet, 0, i);
cell.setCellStyle(headerStyle);
setText(cell,title);
}
sheet.getRow(0).setHeight(height);
HSSFCellStyle contentStyle = workbook.createCellStyle(); //内容样式
contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
List<Map<String,Object>> varList = (List<Map<String,Object>>) model.get("varList");
int varCount = varList.size();
for(int i=0; i<varCount; i++){
Map<String,Object> vpd = varList.get(i);
for(int j=0;j<len;j++){
String varstr = vpd.get("var"+(j+1)) != null ? vpd.get("var"+(j+1)).toString() : "";
cell = getCell(sheet, i+1, j);
cell.setCellStyle(contentStyle);
setText(cell,varstr);
}
}
}
}
package com.platform.utils.util;
import java.io.File;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
/**
* 说明:路径工具类
* @version
*/
public class PathUtil {
/**
* 图片访问路径
* @param pathType
* 图片类型 visit-访问;save-保存
* @param pathCategory
* 图片类别,如:话题图片-topic、话题回复图片-reply、商家图片
* @return
*/
public static String getPicturePath(String pathType, String pathCategory) {
String strResult = "";
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
StringBuffer strBuf = new StringBuffer();
if ("visit".equals(pathType)) {
} else if ("save".equals(pathType)) {
String projectPath = PublicUtil.getPorjectPath().replaceAll("\\\\",
"/");
projectPath = splitString(projectPath, "bin/");
strBuf.append(projectPath);
strBuf.append("webapps/ROOT/");
}
strResult = strBuf.toString();
return strResult;
}
private static String splitString(String str, String param) {
String result = str;
if (str.contains(param)) {
int start = str.indexOf(param);
result = str.substring(0, start);
}
return result;
}
/**获取classpath1
* @return
*/
public static String getClasspath(){
String path = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../").replaceAll("file:/", "").replaceAll("%20", " ").trim();
if(path.indexOf(":") != 1){
path = File.separator + path;
}
return path;
}
/**获取classpath2
* @return
*/
public static String getClassResources(){
String path = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))).replaceAll("file:/", "").replaceAll("%20", " ").trim();
if(path.indexOf(":") != 1){
path = File.separator + path;
}
return path;
}
public static String PathAddress() {
String strResult = "";
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
StringBuffer strBuf = new StringBuffer();
strBuf.append(request.getScheme() + "://");
strBuf.append(request.getServerName() + ":");
strBuf.append(request.getServerPort() + "");
strBuf.append(request.getContextPath() + "/");
strResult = strBuf.toString();// +"ss/";//加入项目的名称
return strResult;
}
}
package com.platform.utils.util;
import java.util.UUID;
public class UuidUtil {
public static String get32UUID() {
String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
return uuid;
}
public static void main(String[] args) {
System.out.println(get32UUID());
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论