diff --git a/pom.xml b/pom.xml index f7fe939..0feb0f6 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,12 @@ 5.5.7 + + cn.ucloud.ufile + ufile-client-java + 2.3.0 + + commons-net commons-net @@ -163,6 +169,25 @@ pagehelper-spring-boot-starter 1.2.10 + + + org.apache.httpcomponents + httpclient + 4.5 + + + org.apache.httpcomponents + httpmime + 4.5 + + + org.springframework + spring-test + 5.1.9.RELEASE + compile + + + diff --git a/src/main/java/cn/hellohao/controller/AdminRootController.java b/src/main/java/cn/hellohao/controller/AdminRootController.java index 2ea02ff..8db9c88 100644 --- a/src/main/java/cn/hellohao/controller/AdminRootController.java +++ b/src/main/java/cn/hellohao/controller/AdminRootController.java @@ -81,8 +81,6 @@ public class AdminRootController { model.addAttribute("StorageType", 5);//切换到本地 model.addAttribute("Endpoint2", 0); } - - return "admin/storageconfig"; } @@ -203,10 +201,7 @@ public class AdminRootController { //修改站点配置 @PostMapping("/updateconfig") @ResponseBody -// public Integer updateconfig(String webname,String explain, String video, -// Integer backtype, String links, String notice,String baidu, -// String domain,String background1,String background2 ) { - public Integer updateconfig(Config config ) { + public Integer updateconfig(Config config ) { Integer ret = configService.setSourceype(config); return ret; @@ -284,7 +279,7 @@ public class AdminRootController { String urls ="http://tc.hellohao.cn/systemupdate"; paramMap.put("dates",dates); String result= HttpUtil.post(urls, paramMap); - System.out.println(Integer.parseInt( result )); +// System.out.println(Integer.parseInt( result )); return Integer.parseInt( result ); } diff --git a/src/main/java/cn/hellohao/controller/ClientController.java b/src/main/java/cn/hellohao/controller/ClientController.java index 7d44cd6..9339de2 100644 --- a/src/main/java/cn/hellohao/controller/ClientController.java +++ b/src/main/java/cn/hellohao/controller/ClientController.java @@ -12,11 +12,10 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.io.FileInputStream; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Hellohao @@ -49,6 +48,8 @@ public class ClientController { private FTPImageupload ftpImageupload; @Autowired private DomainService domainService; + @Autowired + private ImgService imgService; @Value("${systemupdate}") private String systemupdate; @@ -164,7 +165,13 @@ public class ClientController { } img.setSizes((entry.getValue())); img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); - img.setAbnormal(0); + //img.setAbnormal(Sentence.getIPs()); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + img.setImgtype(0); //-1证明超出大小, if (entry.getValue() != -1) { userService.insertimg(img); @@ -198,7 +205,13 @@ public class ClientController { } img.setSizes((entry.getValue())/1024); img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); - img.setAbnormal(0); + //img.setAbnormal(Sentence.getIPs()); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + img.setImgtype(0); //-1证明超出大小, if (entry.getValue() != -1) { userService.insertimg(img); @@ -220,6 +233,290 @@ public class ClientController { return resultBean; } + @PostMapping(value = "/clientupurlimg") + @ResponseBody + public ResultBean clientupurlimg( String imgurl, HttpServletRequest request, Integer setday, + String email,String pass) throws Exception { + ResultBean resultBean = null; + UploadConfig uploadConfig = uploadConfigService.getUpdateConfig(); + if (uploadConfig.getApi() == 1) { + if (email != null && pass != null) { + Integer ret = userService.login(email, Base64Encryption.encryptBASE64(pass.getBytes())); + if (ret > 0) { + User u = userService.getUsers(email); + Config config = configService.getSourceype();//查询当前系统使用的存储源类型。 + Integer usermemory =0; + Integer memory =0; + Integer Sourcekey=0; + if(u==null){ + Sourcekey = GetCurrentSource.GetSource(null); + memory = uploadConfig.getVisitormemory(); + usermemory= imgService.getusermemory(0); + if(usermemory==null){usermemory = 0;} + }else{ + Sourcekey = GetCurrentSource.GetSource(u.getId()); + memory = userService.getUsers(u.getEmail()).getMemory(); + usermemory= imgService.getusermemory(u.getId()); + if(usermemory==null){usermemory = 0;} + } + String userpath = "tourist"; + if(uploadConfig.getUrltype()==2){ + java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("yyyy/MM/dd"); + userpath = dateFormat.format(new Date()); + }else{if (u != null) { userpath = u.getUsername();}} + JSONArray jsonArray = new JSONArray(); + + Keys key = keysService.selectKeys(Sourcekey); + long imgsize = ImgUrlUtil.getFileLength(imgurl); + Integer youke = uploadConfig.getFilesizetourists(); + Integer yonghu = uploadConfig.getFilesizeuser(); + String uuid= UUID.randomUUID().toString().replace("-", ""); + Boolean bo =false; + if(Sourcekey==5){ + bo =true; + }else{bo = StringUtils.doNull(Sourcekey,key);//判断对象是否有空值 + } +// //容量判断 + if(u==null){ + memory = uploadConfig.getVisitormemory(); + usermemory= imgService.getusermemory(0); + if(usermemory==null){usermemory = 0;} + }else{ + memory = userService.getUsers(u.getEmail()).getMemory(); + usermemory= imgService.getusermemory(u.getId()); + if(usermemory==null){usermemory = 0;} + } + //先判断对象存储key是不是null + Print.warning("上传地址是:"+request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); + if(bo){ + if(usermemory/10240 && imgsize<=(yonghu*1024*1024)){ + try{ + boolean bl =ImgUrlUtil.downLoadFromUrl(imgurl, + uuid, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); + if(bl==true){ + FileInputStream is = new FileInputStream(request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + byte[] b = new byte[3]; + is.read(b, 0, b.length); + String xxx = ImgUrlUtil.bytesToHexString(b); + xxx = xxx.toUpperCase(); + System.out.println("头文件是:" + xxx); + String ooo = TypeDict.checkType(xxx); + System.out.println("后缀名是:" + ooo); + if(is!=null){ + is.close(); + } + //判断文件头是否是图片 + if(!ooo.equals("0000")){ + Map map = new HashMap<>(); + map.put(ooo, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + Map m = null; + if(key.getStorageType()==1){ + m = nOSImageupload.Imageupload(null, userpath,map,setday); + }else if (key.getStorageType()==2){ + m = ossImageupload.ImageuploadOSS(null, userpath,map,setday); + }else if(key.getStorageType()==3){ + m = ussImageupload.ImageuploadUSS(null, userpath,map,setday); + }else if(key.getStorageType()==4){ + m = kodoImageupload.ImageuploadKODO(null, userpath,map,setday); + }else if(key.getStorageType()==5){ + m = LocUpdateImg.ImageuploadLOC(null,userpath,map,setday); + }else if(key.getStorageType()==6){ + m = cosImageupload.ImageuploadCOS(null,userpath,map,setday); + }else if(key.getStorageType()==7){ + m = ftpImageupload.ImageuploadFTP(null,userpath,map,setday); + } + else{ + System.err.println("未获取到对象存储参数,上传失败。"); + } + Images img = new Images(); + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); + String times = df.format(new Date()); + System.out.println("上传图片的时间是:"+times); + for (Map.Entry entry : m.entrySet()) { + if(key.getStorageType()==5){ + if(config.getDomain()!=null){ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 + }else{ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 + } + }else{ + jsonArray.add(entry.getKey().getImgurl()); + img.setImgurl(entry.getKey().getImgurl()); + } + img.setUpdatetime(times); + img.setSource(key.getStorageType()); + if (u == null) { + img.setUserid(0);//用户id + } else { + img.setUserid(u.getId());//用户id + } + img.setSizes((entry.getValue())); + img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + //img.setAbnormal(Sentence.getIPs()); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + img.setImgtype(0); + userService.insertimg(img); + long etime = System.currentTimeMillis(); + System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); + } + resultBean = ResultBean.success(jsonArray); + }else{ + resultBean = ResultBean.error(-3,"文件类型不符合要求"); + } + } + }catch (Exception e) { + // TODO: handle exception + Print.warning(e.toString()); + resultBean = ResultBean.error(-4,"该文件不支持上传"); + } + }else{ + //文件过大 + resultBean = ResultBean.error(-2,"文件过大"); + } + }else{ + if(imgsize>0 && imgsize<=(youke*1024*1024)){ + try{ + boolean bl = ImgUrlUtil.downLoadFromUrl(imgurl, + uuid, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); + if(bl==true){ + FileInputStream is = new FileInputStream(request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + byte[] b = new byte[3]; + is.read(b, 0, b.length); + String xxx = ImgUrlUtil.bytesToHexString(b); + xxx = xxx.toUpperCase(); + //System.out.println("头文件是:" + xxx); + String ooo = TypeDict.checkType(xxx); + //System.out.println("后缀名是:" + ooo); + if(is!=null){ + is.close(); + } + //判断文件头是否是图片 + if(!xxx.equals("0000")){ + Map map = new HashMap<>(); + map.put(ooo, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + Map m = null; + if(key.getStorageType()==1){ + m = nOSImageupload.Imageupload(null, userpath,map,setday); + }else if (key.getStorageType()==2){ + m = ossImageupload.ImageuploadOSS(null, userpath,map,setday); + }else if(key.getStorageType()==3){ + m = ussImageupload.ImageuploadUSS(null, userpath,map,setday); + }else if(key.getStorageType()==4){ + m = kodoImageupload.ImageuploadKODO(null, userpath,map,setday); + }else if(key.getStorageType()==5){ + m =LocUpdateImg.ImageuploadLOC(null,userpath, map,setday); + }else if(key.getStorageType()==6){ + m =cosImageupload.ImageuploadCOS(null,userpath, map,setday); + }else if(key.getStorageType()==7){ + m = ftpImageupload.ImageuploadFTP(null,userpath,map,setday); + } + else{ + System.err.println("未获取到对象存储参数,上传失败。"); + } + Images img = new Images(); + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); + String times = df.format(new Date()); + System.out.println("上传图片的时间是:"+times); + for (Map.Entry entry : m.entrySet()) { + if(key.getStorageType()==5){ + if(config.getDomain()!=null){ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 + }else{ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 + } + }else{ + jsonArray.add(entry.getKey().getImgurl()); + img.setImgurl(entry.getKey().getImgurl());//图片链接 + } + img.setUpdatetime(times); + img.setSource(key.getStorageType()); + if (u == null) { + img.setUserid(0);//用户id + } else { + img.setUserid(u.getId());//用户id + } + img.setSizes((entry.getValue())); + img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + //img.setAbnormal(Sentence.getIPs()); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + img.setImgtype(0); + userService.insertimg(img); + long etime = System.currentTimeMillis(); + System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); + } + //上传成功 + resultBean = ResultBean.success(jsonArray); + }else{ + resultBean = ResultBean.error(-3,"文件类型不符合要求"); + } + } + }catch (Exception e) { + // TODO: handle exception + Print.warning(e.toString()); + resultBean = ResultBean.error(-4,"文件类型不符合要求"); + } + }else{ + //文件过大 + resultBean = ResultBean.error(-2,"图片太大或不存在"); + } + } + }else{ + resultBean = ResultBean.error(-5,"可用空间不足"); + } + }else{ + resultBean = ResultBean.error(-1,"未配置存储源"); + } + }else {resultBean = ResultBean.error(-2, "此用户信息不正确。");} + }else {resultBean = ResultBean.error(-3, "邮箱或密码为空");} + }else{resultBean = ResultBean.error(-4, "管理员关闭了API接口");} +Print.Normal(resultBean.toString()); + return resultBean; +/** + * 错误返回值含义: + * -1 存储源key未配置 + * -2 目标图片太大或者不存在 + * -3 文件类型不符合要求 + * */ + } + + @RequestMapping("/clientlogin") + @ResponseBody + public String login( HttpSession httpSession, String email, String password) { + JSONArray jsonArray = new JSONArray(); + String basepass = Base64Encryption.encryptBASE64(password.getBytes()); + Integer ret = userService.login(email, basepass); + if (ret > 0) { + User user = userService.getUsers(email); + if (user.getIsok() == 1) { + jsonArray.add(1); + } else if(ret==-1){ + jsonArray.add(-1); + }else { + jsonArray.add(-2); + } + } else { + jsonArray.add(0); + } + return jsonArray.toString(); + } + @GetMapping (value = "/notices") @ResponseBody public String notices() throws Exception { diff --git a/src/main/java/cn/hellohao/controller/UpdateImgController.java b/src/main/java/cn/hellohao/controller/UpdateImgController.java index 3b0c4e8..cb33750 100644 --- a/src/main/java/cn/hellohao/controller/UpdateImgController.java +++ b/src/main/java/cn/hellohao/controller/UpdateImgController.java @@ -51,6 +51,7 @@ public class UpdateImgController { @Autowired private ImgService imgService; + private Integer updatekey; @RequestMapping({"/", "/index"}) public String indexImg(Model model, HttpSession httpSession) { @@ -104,6 +105,9 @@ public class UpdateImgController { }else{ return "index"; } + Random random = new Random(); + updatekey = random.nextInt(10000); + model.addAttribute("updatekey", updatekey); return "index"; } @@ -111,7 +115,8 @@ public class UpdateImgController { @RequestMapping(value = "/upimg") @ResponseBody public String upimg( HttpSession session - , @RequestParam(value = "file", required = false) MultipartFile[] file,Integer setday) throws Exception { + , @RequestParam(value = "file", required = false) MultipartFile multipartFile,Integer setday,String upurlk) throws Exception { + java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("yyyy/MM/dd"); JSONArray jsonArray = new JSONArray(); JSONObject jsonObject = new JSONObject(); Config config = configService.getSourceype(); @@ -120,363 +125,283 @@ public class UpdateImgController { Integer usermemory =0; Integer memory =0; Integer Sourcekey=0; + Integer maxsize = 0; + String userpath = "tourist"; + Boolean b =false; + + if(Integer.parseInt(Base64Encryption.decryptBASE64(upurlk))!=updatekey){ + jsonObject.put("imgurls",403);//非法调用 + return jsonObject.toString(); + } if(u==null){ Sourcekey = GetCurrentSource.GetSource(null); memory = uploadConfig.getVisitormemory(); + maxsize = uploadConfig.getFilesizetourists(); usermemory= imgService.getusermemory(0); if(usermemory==null){usermemory = 0;} }else{ + userpath = u.getUsername(); Sourcekey = GetCurrentSource.GetSource(u.getId()); memory = userService.getUsers(u.getEmail()).getMemory(); + maxsize = uploadConfig.getFilesizeuser(); usermemory= imgService.getusermemory(u.getId()); if(usermemory==null){usermemory = 0;} } - Keys key = keysService.selectKeys(Sourcekey);//config.getSourcekey() - Boolean b =false; - if(Sourcekey==5){ - b =true; - }else{ - b = StringUtils.doNull(Sourcekey,key);//判断对象是否有空值 + //查询到如果使用目录格式是日期,就重新给userpath赋值 + if(uploadConfig.getUrltype()==2){ + userpath = dateFormat.format(new Date()); } - if(b){ - int tmp = usermemory/1024; - if(memory==-1){//证明未做限制 - tmp = -2; - } - if(tmp=memory){ + jsonObject.put("imgurls",-5);//可用空间不足 + return jsonObject.toString(); + } + long stime = System.currentTimeMillis(); + Map map = new HashMap<>(); + //for (MultipartFile multipartFile : file) { + Print.Normal("文件大小:"+multipartFile.getSize()); + if(multipartFile.getSize()>maxsize*1024*1024){ + jsonObject.put("imgurls",-6);//超出设定大小 + return jsonObject.toString(); + } + // 获取ImageReader对象的迭代器 + String fileName = multipartFile.getOriginalFilename(); + String lastname = fileName.substring(fileName.lastIndexOf(".") + 1);//获取文件后缀 + if (!multipartFile.isEmpty()) { //判断文件是否为空 + map.put(lastname, multipartFile); + } + //} + Map m = null; + m = GetSource.storageSource(key.getStorageType(),map, userpath,null,setday); + //开始存数据 + Images img = new Images(); + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); + Print.Normal("上传图片的时间是:"+df.format(new Date())); + for (Map.Entry entry : m.entrySet()) { + if(key.getStorageType()==5){ + if(config.getDomain()!=null){ + jsonObject.put("imgurls",config.getDomain()+"/links/"+entry.getKey().getImgurl()); + jsonObject.put("imgnames",entry.getKey().getImgname()); + img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 }else{ - if (u != null) { - userpath = u.getUsername(); - } - } - Map map = new HashMap<>(); - for (MultipartFile multipartFile : file) { - - // 获取ImageReader对象的迭代器 - //获取文件名 - String fileName = multipartFile.getOriginalFilename(); - String lastname = fileName.substring(fileName.lastIndexOf(".") + 1);//获取文件后缀 - if (!multipartFile.isEmpty()) { //判断文件是否为空 - map.put(lastname, multipartFile); - System.out.println("===name==="+multipartFile.getOriginalFilename()); //文件名 - //multipartFile.getSize(); //文件大小 - } - } - Map m = null; - if(key.getStorageType()==1){ - m = nOSImageupload.Imageupload(map, userpath,null,setday); - }else if (key.getStorageType()==2){ - m = ossImageupload.ImageuploadOSS(map, userpath,null,setday); - }else if(key.getStorageType()==3){ - m = ussImageupload.ImageuploadUSS(map, userpath,null,setday); - }else if(key.getStorageType()==4){ - m = kodoImageupload.ImageuploadKODO(map, userpath,null,setday); - }else if(key.getStorageType()==5){ - m = LocUpdateImg.ImageuploadLOC(map, userpath,null,setday); - }else if(key.getStorageType()==6){ - m = cosImageupload.ImageuploadCOS(map, userpath,null,setday); - }else if(key.getStorageType()==7){ - m = ftpImageupload.ImageuploadFTP(map, userpath,null,setday); - } - else{ - System.err.println("未获取到对象存储参数,上传失败。"); - } - Images img = new Images(); - SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); - String times = df.format(new Date()); - System.out.println("上传图片的时间是:"+times); - for (Map.Entry entry : m.entrySet()) { - if(key.getStorageType()==5){ - if(config.getDomain()!=null){ - jsonObject.put("imgurls",config.getDomain()+"/links/"+entry.getKey().getImgurl()); - jsonObject.put("imgnames",entry.getKey().getImgname()); - img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 - }else{ - jsonObject.put("imgurls",config.getDomain()+"/links/"+entry.getKey().getImgurl()); - jsonObject.put("imgnames",entry.getKey().getImgname()); - img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 - } - }else{ - jsonObject.put("imgurls",entry.getKey().getImgurl()); - jsonObject.put("imgnames",entry.getKey().getImgname()); - img.setImgurl(entry.getKey().getImgurl());//图片链接 - } - jsonArray.add(jsonObject); - img.setUpdatetime(times); - img.setSource(key.getStorageType()); - if (u == null) { - img.setUserid(0); - } else { - img.setUserid(u.getId());//用户id - } - img.setSizes((entry.getValue()) / 1024); - img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); - img.setAbnormal(0); - userService.insertimg(img); - long etime = System.currentTimeMillis(); - - System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); - } - }else{ - jsonObject.put("imgurls",-5);//可用空间不足 + jsonObject.put("imgurls",config.getDomain()+"/links/"+entry.getKey().getImgurl()); + jsonObject.put("imgnames",entry.getKey().getImgname()); + img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 } }else{ - jsonObject.put("imgurls",-1); + jsonObject.put("imgurls",entry.getKey().getImgurl()); + jsonObject.put("imgnames",entry.getKey().getImgname()); + img.setImgurl(entry.getKey().getImgurl());//图片链接 } - - //开辟新进程鉴黄。现在已经改成定时器 - //查询鉴黄功能是否启动,1为启用 -// Imgreview imgreview = imgreviewService.selectByPrimaryKey(1); -// if (imgreview.getUsing() == 1) { -// //上传完成后开辟新的线程进行图片鉴黄。 -// JianHuangThread thread = new JianHuangThread(imgreviewService, key, u, m); -// thread.start(); -// } - System.out.println(jsonArray.toString()); + jsonArray.add(jsonObject); + img.setUpdatetime(df.format(new Date())); + img.setSource(key.getStorageType()); + img.setUserid(u == null?0:u.getId()); + img.setSizes((entry.getValue()) / 1024); + img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + img.setImgtype(setday>0?1:0); + userService.insertimg(img); + long etime = System.currentTimeMillis(); + Print.Normal("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + } return jsonObject.toString(); } - - //根据网络图片url上传 @PostMapping(value = "/upurlimg") @ResponseBody - public String upurlimg(HttpSession session, String imgurl, HttpServletRequest request,Integer setday) throws Exception { + public String upurlimg(HttpSession session, String imgurl, HttpServletRequest request,Integer setday,String upurlk) throws Exception { Config config = configService.getSourceype();//查询当前系统使用的存储源类型。 UploadConfig uploadConfig = uploadConfigService.getUpdateConfig(); User u = (User) session.getAttribute("user"); - Integer usermemory =0; Integer memory =0; Integer Sourcekey=0; + String userpath = "tourist"; if(u==null){ Sourcekey = GetCurrentSource.GetSource(null); memory = uploadConfig.getVisitormemory(); usermemory= imgService.getusermemory(0); if(usermemory==null){usermemory = 0;} }else{ + userpath = u.getUsername(); Sourcekey = GetCurrentSource.GetSource(u.getId()); memory = userService.getUsers(u.getEmail()).getMemory(); usermemory= imgService.getusermemory(u.getId()); if(usermemory==null){usermemory = 0;} } - //Integer Sourcekey = GetCurrentSource.GetSource(u.getId()); - String userpath = "tourist"; if(uploadConfig.getUrltype()==2){ java.text.DateFormat dateFormat = new java.text.SimpleDateFormat("yyyy/MM/dd"); userpath = dateFormat.format(new Date()); - }else{if (u != null) { userpath = u.getUsername();}} + } JSONArray jsonArray = new JSONArray(); - + //判断非法调用 + if(Integer.parseInt(Base64Encryption.decryptBASE64(upurlk))!=updatekey){ + jsonArray.add(-403);//非法调用 + return jsonArray.toString(); + } Keys key = keysService.selectKeys(Sourcekey); long imgsize = ImgUrlUtil.getFileLength(imgurl); Integer youke = uploadConfig.getFilesizetourists(); Integer yonghu = uploadConfig.getFilesizeuser(); String uuid= UUID.randomUUID().toString().replace("-", ""); Boolean bo =false; - if(Sourcekey==5){ - bo =true; - }else{bo = StringUtils.doNull(Sourcekey,key);//判断对象是否有空值 - } -// //容量判断 -// Integer usermemory =0; -// Integer memory =0; - if(u==null){ - memory = uploadConfig.getVisitormemory(); - usermemory= imgService.getusermemory(0); - if(usermemory==null){usermemory = 0;} - }else{ - memory = userService.getUsers(u.getEmail()).getMemory(); - usermemory= imgService.getusermemory(u.getId()); - if(usermemory==null){usermemory = 0;} + bo = Sourcekey==5?true:StringUtils.doNull(Sourcekey,key); + if(!bo){ + jsonArray.add(-1);//存储源不完整 + return jsonArray.toString(); } //先判断对象存储key是不是null Print.warning("上传地址是:"+request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); - if(bo){ - if(usermemory/1024=memory) { + jsonArray.add(-5); + return jsonArray.toString(); + } long stime = System.currentTimeMillis(); //判断是会员还是游客 if(u!=null){ //判断文件大小 - if(imgsize>0 && imgsize<=(yonghu*1024*1024)){ - try{ - boolean bl =ImgUrlUtil.downLoadFromUrl(imgurl, - uuid, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); - if(bl==true){ - FileInputStream is = new FileInputStream(request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); - byte[] b = new byte[3]; - is.read(b, 0, b.length); - String xxx = ImgUrlUtil.bytesToHexString(b); - xxx = xxx.toUpperCase(); - System.out.println("头文件是:" + xxx); - String ooo = TypeDict.checkType(xxx); - System.out.println("后缀名是:" + ooo); - if(is!=null){ - is.close(); - } - //判断文件头是否是图片 - if(!ooo.equals("0000")){ - Map map = new HashMap<>(); - map.put(ooo, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); - Map m = null; - if(key.getStorageType()==1){ - m = nOSImageupload.Imageupload(null, userpath,map,setday); - }else if (key.getStorageType()==2){ - m = ossImageupload.ImageuploadOSS(null, userpath,map,setday); - }else if(key.getStorageType()==3){ - m = ussImageupload.ImageuploadUSS(null, userpath,map,setday); - }else if(key.getStorageType()==4){ - m = kodoImageupload.ImageuploadKODO(null, userpath,map,setday); - }else if(key.getStorageType()==5){ - m = LocUpdateImg.ImageuploadLOC(null,userpath,map,setday); - }else if(key.getStorageType()==6){ - m = cosImageupload.ImageuploadCOS(null,userpath,map,setday); - }else if(key.getStorageType()==7){ - m = ftpImageupload.ImageuploadFTP(null,userpath,map,setday); - } - else{ - System.err.println("未获取到对象存储参数,上传失败。"); - } - Images img = new Images(); - SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); - String times = df.format(new Date()); - System.out.println("上传图片的时间是:"+times); - for (Map.Entry entry : m.entrySet()) { - if(key.getStorageType()==5){ - if(config.getDomain()!=null){ - jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); - img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 - }else{ - jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); - img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 - } - }else{ - jsonArray.add(entry.getKey().getImgurl()); - img.setImgurl(entry.getKey().getImgurl()); - } - img.setUpdatetime(times); - img.setSource(key.getStorageType()); - if (u == null) { - img.setUserid(0);//用户id - } else { - img.setUserid(u.getId());//用户id - } - img.setSizes((entry.getValue())); - img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); - img.setAbnormal(0); - userService.insertimg(img); - long etime = System.currentTimeMillis(); - System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); - } - }else{ - jsonArray.add(-3); - } - } - }catch (Exception e) { - // TODO: handle exception - Print.warning(e.toString()); - jsonArray.add(-4); - } - }else{ + if(imgsize>0 && imgsize>=(yonghu*1024*1024)) { //文件过大 jsonArray.add(-2); + return jsonArray.toString(); + } + try{ + boolean bl =ImgUrlUtil.downLoadFromUrl(imgurl, + uuid, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); + if(bl==true){ + FileInputStream is = new FileInputStream(request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + byte[] b = new byte[3]; + is.read(b, 0, b.length); + String xxx = ImgUrlUtil.bytesToHexString(b); + xxx = xxx.toUpperCase(); + if(is!=null){is.close();} + //判断文件头是否是图片 + if(TypeDict.checkType(xxx).equals("0000")) { + jsonArray.add(-3);//不是图片格式 + return jsonArray.toString(); + } + Map map = new HashMap<>(); + map.put(TypeDict.checkType(xxx), request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + Map m = null; + m = GetSource.storageSource(key.getStorageType(), null, userpath,map,setday); + Images img = new Images(); + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); + String times = df.format(new Date()); + System.out.println("上传图片的时间是:"+times); + for (Map.Entry entry : m.entrySet()) { + if(key.getStorageType()==5){ + if(config.getDomain()!=null){ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 + }else{ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 + } + }else{ + jsonArray.add(entry.getKey().getImgurl()); + img.setImgurl(entry.getKey().getImgurl()); + } + img.setUpdatetime(times); + img.setSource(key.getStorageType()); + img.setUserid(u == null?0:u.getId()); + img.setSizes((entry.getValue())); + img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + //img.setAbnormal(Sentence.getIPs()); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + if(setday>0){img.setImgtype(1);} + else{img.setImgtype(0);} + userService.insertimg(img); + long etime = System.currentTimeMillis(); + System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); + } + } + }catch (Exception e) { + Print.warning(e.toString()); + jsonArray.add(-4); } }else{ - if(imgsize>0 && imgsize<=(youke*1024*1024)){ - try{ - boolean bl = ImgUrlUtil.downLoadFromUrl(imgurl, - uuid, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); - if(bl==true){ - FileInputStream is = new FileInputStream(request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); - byte[] b = new byte[3]; - is.read(b, 0, b.length); - String xxx = ImgUrlUtil.bytesToHexString(b); - xxx = xxx.toUpperCase(); - //System.out.println("头文件是:" + xxx); - String ooo = TypeDict.checkType(xxx); - //System.out.println("后缀名是:" + ooo); - if(is!=null){ - is.close(); - } - //判断文件头是否是图片 - if(!xxx.equals("0000")){ - Map map = new HashMap<>(); - map.put(ooo, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); - Map m = null; - if(key.getStorageType()==1){ - m = nOSImageupload.Imageupload(null, userpath,map,setday); - }else if (key.getStorageType()==2){ - m = ossImageupload.ImageuploadOSS(null, userpath,map,setday); - }else if(key.getStorageType()==3){ - m = ussImageupload.ImageuploadUSS(null, userpath,map,setday); - }else if(key.getStorageType()==4){ - m = kodoImageupload.ImageuploadKODO(null, userpath,map,setday); - }else if(key.getStorageType()==5){ - m =LocUpdateImg.ImageuploadLOC(null,userpath, map,setday); - }else if(key.getStorageType()==6){ - m =cosImageupload.ImageuploadCOS(null,userpath, map,setday); - }else if(key.getStorageType()==7){ - m = ftpImageupload.ImageuploadFTP(null,userpath,map,setday); - } - else{ - System.err.println("未获取到对象存储参数,上传失败。"); - } - Images img = new Images(); - SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); - String times = df.format(new Date()); - System.out.println("上传图片的时间是:"+times); - for (Map.Entry entry : m.entrySet()) { - if(key.getStorageType()==5){ - if(config.getDomain()!=null){ - jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); - img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 - }else{ - jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); - img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 - } - }else{ - jsonArray.add(entry.getKey().getImgurl()); - } - //img.setImgurl(entry.getKey());//图片链接 - img.setUpdatetime(times); - img.setSource(key.getStorageType()); - if (u == null) { - img.setUserid(0);//用户id - } else { - img.setUserid(u.getId());//用户id - } - img.setSizes((entry.getValue())); - img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); - img.setAbnormal(0); - userService.insertimg(img); - long etime = System.currentTimeMillis(); - System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); - } - }else{ - jsonArray.add(-3); - } - } - }catch (Exception e) { - // TODO: handle exception - Print.warning(e.toString()); - jsonArray.add(-4); - } - }else{ + if(imgsize>0 && imgsize>=(youke*1024*1024)){ //文件过大 jsonArray.add(-2); + return jsonArray.toString(); + } + try{ + boolean bl = ImgUrlUtil.downLoadFromUrl(imgurl, + uuid, request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"); + if(bl==true){ + FileInputStream is = new FileInputStream(request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + byte[] b = new byte[3]; + is.read(b, 0, b.length); + String xxx = ImgUrlUtil.bytesToHexString(b); + xxx = xxx.toUpperCase(); + if(is!=null){is.close(); } + //判断文件头是否是图片 + if(xxx.equals("0000")) { + jsonArray.add(-3); + return jsonArray.toString(); + } + Map map = new HashMap<>(); + map.put(TypeDict.checkType(xxx), request.getSession().getServletContext().getRealPath("/")+"/hellohaotmp/"+uuid); + + Map m = null; + m = GetSource.storageSource(key.getStorageType(), null, userpath,map,setday); + Images img = new Images(); + SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); + String times = df.format(new Date()); + System.out.println("上传图片的时间是:"+times); + for (Map.Entry entry : m.entrySet()) { + if(key.getStorageType()==5){ + if(config.getDomain()!=null){ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl(config.getDomain()+"/links/"+entry.getKey().getImgurl());//图片链接 + }else{ + jsonArray.add(config.getDomain()+"/links/"+entry.getKey().getImgurl()); + img.setImgurl("http://"+IPPortUtil.getLocalIP()+":"+IPPortUtil.getLocalPort()+"/links/"+entry.getKey().getImgurl());//图片链接 + } + }else{ + jsonArray.add(entry.getKey().getImgurl()); + img.setImgurl(entry.getKey().getImgurl());//图片链接 + } + img.setUpdatetime(times); + img.setSource(key.getStorageType()); + img.setUserid(u == null?0:u.getId()); + img.setSizes((entry.getValue())); + img.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + img.setImgtype(setday>0?1:0); + userService.insertimg(img); + long etime = System.currentTimeMillis(); + System.out.println("上传图片所用时长:" + String.valueOf(etime - stime) + "ms"); + //多线程插入ip值 + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(SetText.getSubString(entry.getKey().getImgurl(), key.getRequestAddress() + "/", "")); + Thread thread = new Thread(getIPS); + thread.start(); + } + } + }catch (Exception e) { + Print.warning(e.toString()); + jsonArray.add(-4); } } - }else{ - jsonArray.add(-5); - } - }else{ - jsonArray.add(-1); - } + return jsonArray.toString(); /** * 错误返回值含义: diff --git a/src/main/java/cn/hellohao/dao/ImgMapper.java b/src/main/java/cn/hellohao/dao/ImgMapper.java index 4c7051d..cae5602 100644 --- a/src/main/java/cn/hellohao/dao/ImgMapper.java +++ b/src/main/java/cn/hellohao/dao/ImgMapper.java @@ -20,7 +20,7 @@ public interface ImgMapper { Integer counts(@Param("userid") Integer userid); - Integer setabnormal(@Param("imgname") String imgname); + Integer setabnormal(@Param("imgname") String imgname,@Param("abnormal") String abnormal); Integer deleimgname(@Param("imgname") String imgname); Integer deleall(@Param("id") Integer id); diff --git a/src/main/java/cn/hellohao/pojo/Config.java b/src/main/java/cn/hellohao/pojo/Config.java index 11cb9c1..eea60d7 100644 --- a/src/main/java/cn/hellohao/pojo/Config.java +++ b/src/main/java/cn/hellohao/pojo/Config.java @@ -15,12 +15,13 @@ public class Config { private String background1; private String background2; private String sett; - + private String webms; + private String webkeywords; + private String webfavicons; public Config() { } - - public Config(Integer id, Integer sourcekey, Integer emails, String webname, String explain, String video, Integer backtype, String links, String notice, String baidu, String domain, String background1, String background2, String sett) { + public Config(Integer id, Integer sourcekey, Integer emails, String webname, String explain, String video, Integer backtype, String links, String notice, String baidu, String domain, String background1, String background2, String sett, String webms, String webkeywords, String webfavicons) { this.id = id; this.sourcekey = sourcekey; this.emails = emails; @@ -35,6 +36,9 @@ public class Config { this.background1 = background1; this.background2 = background2; this.sett = sett; + this.webms = webms; + this.webkeywords = webkeywords; + this.webfavicons = webfavicons; } public Integer getId() { @@ -148,4 +152,28 @@ public class Config { public void setSett(String sett) { this.sett = sett; } + + public String getWebms() { + return webms; + } + + public void setWebms(String webms) { + this.webms = webms; + } + + public String getWebkeywords() { + return webkeywords; + } + + public void setWebkeywords(String webkeywords) { + this.webkeywords = webkeywords; + } + + public String getWebfavicons() { + return webfavicons; + } + + public void setWebfavicons(String webfavicons) { + this.webfavicons = webfavicons; + } } diff --git a/src/main/java/cn/hellohao/pojo/Images.java b/src/main/java/cn/hellohao/pojo/Images.java index 7aff5c2..77a8ea6 100644 --- a/src/main/java/cn/hellohao/pojo/Images.java +++ b/src/main/java/cn/hellohao/pojo/Images.java @@ -12,8 +12,9 @@ public class Images { private String imgurl; private Integer userid; private Integer sizes = 0; - private Integer abnormal; + private String abnormal; private Integer source; + private Integer imgtype; private String updatetime; private String username; private Integer storageType; @@ -25,7 +26,7 @@ public class Images { super(); } - public Images(Integer id, String imgname, String imgurl, Integer userid, Integer sizes, Integer abnormal, Integer source, String updatetime, String username, Integer storageType, String starttime, String stoptime) { + public Images(Integer id, String imgname, String imgurl, Integer userid, Integer sizes, String abnormal, Integer source, Integer imgtype, String updatetime, String username, Integer storageType, String starttime, String stoptime) { this.id = id; this.imgname = imgname; this.imgurl = imgurl; @@ -33,6 +34,7 @@ public class Images { this.sizes = sizes; this.abnormal = abnormal; this.source = source; + this.imgtype = imgtype; this.updatetime = updatetime; this.username = username; this.storageType = storageType; @@ -80,11 +82,11 @@ public class Images { this.sizes = sizes; } - public Integer getAbnormal() { + public String getAbnormal() { return abnormal; } - public void setAbnormal(Integer abnormal) { + public void setAbnormal(String abnormal) { this.abnormal = abnormal; } @@ -96,6 +98,14 @@ public class Images { this.source = source; } + public Integer getImgtype() { + return imgtype; + } + + public void setImgtype(Integer imgtype) { + this.imgtype = imgtype; + } + public String getUpdatetime() { return updatetime; } @@ -135,11 +145,6 @@ public class Images { public void setStoptime(String stoptime) { this.stoptime = stoptime; } -// @Mapper -// public static interface ConfigMapper { -// Config getSourceype(); -// Integer setSourceype(@Param("sourcekey") Integer sourcekey); -// } } diff --git a/src/main/java/cn/hellohao/service/ImgService.java b/src/main/java/cn/hellohao/service/ImgService.java index 227e6f2..843d518 100644 --- a/src/main/java/cn/hellohao/service/ImgService.java +++ b/src/main/java/cn/hellohao/service/ImgService.java @@ -18,7 +18,7 @@ public interface ImgService { Integer counts(Integer userid); - Integer setabnormal(String imgname); + Integer setabnormal(String imgname,String abnormal); Integer deleimgname(String imgname); diff --git a/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java b/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java index ada0c54..9e8e3b1 100644 --- a/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java +++ b/src/main/java/cn/hellohao/service/impl/ImgServiceImpl.java @@ -186,8 +186,8 @@ public class ImgServiceImpl implements ImgService { } @Override - public Integer setabnormal(String imgname) { - return imgMapper.setabnormal(imgname); + public Integer setabnormal(String imgname,String abnormal) { + return imgMapper.setabnormal(imgname,abnormal); } @Override diff --git a/src/main/java/cn/hellohao/service/impl/KODOImageupload.java b/src/main/java/cn/hellohao/service/impl/KODOImageupload.java index 165ea75..966e141 100644 --- a/src/main/java/cn/hellohao/service/impl/KODOImageupload.java +++ b/src/main/java/cn/hellohao/service/impl/KODOImageupload.java @@ -49,7 +49,6 @@ public class KODOImageupload { //ossClient.putObject(key.getBucketname(), username + "/" + uuid+times + "." + entry.getKey(),file,meta); try { Response response = uploadManager.put(file,username + "/" + uuid+times + "." + entry.getKey(),upToken); - System.out.println(response); //解析上传成功的结果 DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); ReturnImage returnImage = new ReturnImage(); diff --git a/src/main/java/cn/hellohao/utils/AfterServiceStarted.java b/src/main/java/cn/hellohao/utils/AfterServiceStarted.java index 8647d8e..49d91a4 100644 --- a/src/main/java/cn/hellohao/utils/AfterServiceStarted.java +++ b/src/main/java/cn/hellohao/utils/AfterServiceStarted.java @@ -1,5 +1,6 @@ package cn.hellohao.utils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @@ -12,6 +13,12 @@ public class AfterServiceStarted implements ApplicationRunner { /** * 会在服务启动完成后立即执行 */ + @Value("${spring.datasource.url}") + private String url; + @Value("${spring.datasource.username}") + private String userName; + @Value("${spring.datasource.password}") + private String userPassword; @Override public void run(ApplicationArguments args) throws Exception { Print.Normal("______________________________________________"); @@ -20,7 +27,8 @@ public class AfterServiceStarted implements ApplicationRunner { // Print.Normal(" is OK! Open http://your ip:port "); // Print.Normal("______________________________________________"); //getLinuxLocalIp(); - + //System.out.println("开始执行数据库~~"); + // JDBCTool.caozuo(url,userName,userPassword); } diff --git a/src/main/java/cn/hellohao/utils/DateUtils.java b/src/main/java/cn/hellohao/utils/DateUtils.java index e8226db..42bff3e 100644 --- a/src/main/java/cn/hellohao/utils/DateUtils.java +++ b/src/main/java/cn/hellohao/utils/DateUtils.java @@ -5,7 +5,7 @@ import java.util.Calendar; import java.util.Date; /** - * @author Tiansh + * @author Hellohao * @version 1.0 * @date 2019/9/20 16:27 */ diff --git a/src/main/java/cn/hellohao/utils/GetIPS.java b/src/main/java/cn/hellohao/utils/GetIPS.java new file mode 100644 index 0000000..e0ac066 --- /dev/null +++ b/src/main/java/cn/hellohao/utils/GetIPS.java @@ -0,0 +1,31 @@ +package cn.hellohao.utils; + +import cn.hellohao.service.impl.ImgServiceImpl; +import cn.hellohao.service.impl.ImgreviewServiceImpl; + +/** + * @author Hellohao + * @version 1.0 + * @date 2019/11/6 17:35 + */ +public class GetIPS implements Runnable { + private String imgname ; + + + public void setImgname(String imgname) { + this.imgname = imgname; + } + + @Override + public void run() { + ImgServiceImpl imgService = SpringContextHolder.getBean(ImgServiceImpl.class); + imgService.setabnormal(imgname,Sentence.getIPs()); + } + + public static void runxc(String imgnames){ + GetIPS getIPS = new GetIPS(); + getIPS.setImgname(imgnames); + Thread thread = new Thread(getIPS); + thread.start(); + } +} diff --git a/src/main/java/cn/hellohao/utils/GetSource.java b/src/main/java/cn/hellohao/utils/GetSource.java new file mode 100644 index 0000000..224fd27 --- /dev/null +++ b/src/main/java/cn/hellohao/utils/GetSource.java @@ -0,0 +1,54 @@ +package cn.hellohao.utils; + +import cn.hellohao.exception.StorageSourceInitException; +import cn.hellohao.pojo.ReturnImage; +import cn.hellohao.service.impl.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Map; + +/** + * @author Hellohao + * @version 1.0 + * @date 2019/11/7 17:12 + */ +//通过type判断是哪一个存储源 +public class GetSource { + public static Map storageSource(Integer type, Map fileMap, String userpath, + Map filename,Integer setday){ + NOSImageupload nosImageupload = SpringContextHolder.getBean(NOSImageupload.class); + OSSImageupload ossImageupload = SpringContextHolder.getBean(OSSImageupload.class); + USSImageupload ussImageupload = SpringContextHolder.getBean(USSImageupload.class); + KODOImageupload kodoImageupload = SpringContextHolder.getBean(KODOImageupload.class); + COSImageupload cosImageupload = SpringContextHolder.getBean(COSImageupload.class); + FTPImageupload ftpImageupload = SpringContextHolder.getBean(FTPImageupload.class); + + Map m = null; + try { + if(type==1){ + m = nosImageupload.Imageupload(fileMap, userpath,filename,setday); + }else if (type==2){ + m = ossImageupload.ImageuploadOSS(fileMap, userpath,filename,setday); + }else if(type==3){ + m = ussImageupload.ImageuploadUSS(fileMap, userpath,filename,setday); + }else if(type==4){ + m = kodoImageupload.ImageuploadKODO(fileMap, userpath,filename,setday); + }else if(type==5){ + m = LocUpdateImg.ImageuploadLOC(fileMap, userpath,filename,setday); + }else if(type==6){ + m = cosImageupload.ImageuploadCOS(fileMap, userpath,filename,setday); + }else if(type==7){ + m = ftpImageupload.ImageuploadFTP(fileMap, userpath,filename,setday); + } + else{ + new StorageSourceInitException("GetSource类捕捉异常:未找到存储源"); + } + } catch (Exception e) { + new StorageSourceInitException("GetSource类捕捉异常:",e); + e.printStackTrace(); + } + return m; + } + + +} diff --git a/src/main/java/cn/hellohao/utils/ImageReview.java b/src/main/java/cn/hellohao/utils/ImageReview.java index ebe4f48..99044e9 100644 --- a/src/main/java/cn/hellohao/utils/ImageReview.java +++ b/src/main/java/cn/hellohao/utils/ImageReview.java @@ -26,9 +26,6 @@ public class ImageReview { client.setSocketTimeoutInMillis(60000); } - public static void main(String[] args) { - - } //开始调用鉴黄。 public static void imgJB(Map imgmap, String requestAddress, Keys key, Imgreview imgreview) { ImgServiceImpl imgService = SpringContextHolder.getBean(ImgServiceImpl.class); diff --git a/src/main/java/cn/hellohao/utils/Sentence.java b/src/main/java/cn/hellohao/utils/Sentence.java index 23d93ab..f67679d 100644 --- a/src/main/java/cn/hellohao/utils/Sentence.java +++ b/src/main/java/cn/hellohao/utils/Sentence.java @@ -1,5 +1,7 @@ package cn.hellohao.utils; +import com.alibaba.fastjson.JSONObject; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -19,22 +21,6 @@ public class Sentence { */ public static String getURLContent() { -// String str = ""; -// try { -// URL url = new URL("https://v1.hitokoto.cn/"); -// BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); -// String line; -// while ((line = reader.readLine()) != null) { -// str += line; -// } -// reader.close(); -// } catch (MalformedURLException e) { -// e.printStackTrace(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// return str; - String result = ""; //String urlName = "https://v1.hitokoto.cn/"; String urlName = "http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1"; @@ -61,4 +47,26 @@ public class Sentence { return result; } + //获取真实ip + public static String getIPs(){ + String str = ""; + try { + URL url = new URL("https://api.asilu.com/geo/"); + BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); + String line; + while ((line = reader.readLine()) != null) { + str += line; + } + reader.close(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } +//所有数据在str + JSONObject ips = JSONObject.parseObject(str); + return ips.get("ip").toString(); + } + + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ac579a5..430b5d7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,7 @@ spring.datasource.username=root #ݿtest spring.datasource.password=root #ݿӵַ -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/picturebed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.url=jdbc:mysql://localhost:3306/picturebed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 #˿ server.port=8088 #ڱʽ ·ʽΪÿߵִ @@ -24,7 +24,7 @@ multipart.maxFileSize=10240KB multipart.maxRequestSize=10240KB spring.thymeleaf.mode = LEGACYHTML5 spring.http.multipart.location=/data/upload_tmp -systemupdate=2019-10-08 +systemupdate=2019-11-08 diff --git a/src/main/resources/mapper/ConfigMapper.xml b/src/main/resources/mapper/ConfigMapper.xml index c8b388c..3ad860c 100644 --- a/src/main/resources/mapper/ConfigMapper.xml +++ b/src/main/resources/mapper/ConfigMapper.xml @@ -48,6 +48,15 @@ `sett` = #{sett}, + + `webms` = #{webms}, + + + `webkeywords` = #{webkeywords}, + + + `webfavicons` = #{webfavicons}, + where id=1 diff --git a/src/main/resources/mapper/ImgMapper.xml b/src/main/resources/mapper/ImgMapper.xml index 9c1f2ca..7ccfdb4 100644 --- a/src/main/resources/mapper/ImgMapper.xml +++ b/src/main/resources/mapper/ImgMapper.xml @@ -12,7 +12,8 @@ a.updatetime, a.sizes, a.abnormal, - a.source + a.source, + a.imgtype FROM imgdata a LEFT JOIN user b ON a.userid = b.id @@ -58,9 +59,9 @@ - + - UPDATE imgdata set abnormal=1 where imgname=#{imgname} + UPDATE imgdata set abnormal=#{abnormal} where imgname=#{imgname} diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 5352329..83f1aff 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -81,8 +81,8 @@ - INSERT INTO imgdata (id, imgname, imgurl, userid, updatetime,sizes,abnormal,source) - VALUES (NULL, #{imgname}, #{imgurl}, #{userid}, #{updatetime},#{sizes},null,#{source}) + INSERT INTO imgdata (id, imgname, imgurl, userid, updatetime,sizes,abnormal,source,imgtype) + VALUES (NULL, #{imgname}, #{imgurl}, #{userid}, #{updatetime},#{sizes},#{abnormal},#{source},#{imgtype}) diff --git a/src/main/resources/static/img/ds.jpg b/src/main/resources/static/img/ds.jpg new file mode 100644 index 0000000..2a60c87 Binary files /dev/null and b/src/main/resources/static/img/ds.jpg differ diff --git a/src/main/resources/static/webuploade/js/upload.js b/src/main/resources/static/webuploade/js/upload.js index d1427a4..1366b33 100644 --- a/src/main/resources/static/webuploade/js/upload.js +++ b/src/main/resources/static/webuploade/js/upload.js @@ -148,7 +148,8 @@ label: '点击选择文件' }, formData: { - setday:isday + setday:isday, + upurlk:qq }, dnd: '#wrapper', paste: '#wrapper', @@ -219,7 +220,17 @@ layer = layui.layer; layer.msg("上传失败,可用空间不足", {icon: 2}); }); - } else{ + } else if(response.imgurls==403){ + layui.use('layer', function () { + layer = layui.layer; + layer.msg("非法调用,请刷新页面后重试", {icon: 2}); + }); + }else if(response.imgurls==-6){ + layui.use('layer', function () { + layer = layui.layer; + layer.msg("图片超出大小。", {icon: 2}); + }); + }else{ arr_url += response.imgurls + '\r\n'; arr_markdown += '!['+response.imgnames+'](' + response.imgurls + ')\r\n'; arr_html += ''+response.imgnames+' \r\n'; diff --git a/src/main/resources/templates/admin/about.html b/src/main/resources/templates/admin/about.html index a5266ec..f9b1f6c 100644 --- a/src/main/resources/templates/admin/about.html +++ b/src/main/resources/templates/admin/about.html @@ -25,15 +25,16 @@

 Guthub开源:https://github.com/Hello-hao/Tbed


-

开发者交流群:32452345342

+

开发者交流群:864800972


     检查更新


 支持一下作者吧:


- +

diff --git a/src/main/resources/templates/admin/table.html b/src/main/resources/templates/admin/table.html index 02006a5..fb47296 100644 --- a/src/main/resources/templates/admin/table.html +++ b/src/main/resources/templates/admin/table.html @@ -36,6 +36,9 @@
@@ -241,18 +247,35 @@
- - - - - - - - -

更多功能陆续开放...

+
+
+ +
+ + 多个关键词用(英文)“ , ”隔开 +
+
+
+
+
+ +
+ + 填写站点(favicon)图标的,大小控制在64×64以内,需是.ico格式的链接 +
+
+
+
+
+ +
+ + 添加网站统计的JS代码,不需要要添加<script>标签</script> +
+
+

- - + 保存 @@ -363,12 +386,16 @@ var background1 = $("#background1").val(); var background2 = $("#background2").val(); var sett = $('#sett input[name="settweb"]:checked ').val(); + var webms = $("#webms").val(); + var webkeywords = $("#webkeywords").val(); + var webfavicons = $("#webfavicons").val(); if (webname != "" && domain!="" ) { $.ajax({ type: "POST", url: "/admin/root/updateconfig", dataType: "json", - data: {webname: webname, explain: explain, video: video,backtype:backtype,links:links,notice:notice,domain:domain,background1:background1,background2:background2,sett:sett}, + data: {webname: webname, explain: explain, video: video,backtype:backtype,links:links,notice:notice, + domain:domain,background1:background1,background2:background2,sett:sett,webms:webms,webkeywords:webkeywords,webfavicons:webfavicons}, success: function (data) { var vals = Number(data); if (vals > 0) { diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 7864a54..d31ab7b 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -1,19 +1,15 @@ - - - - - - - - - - - + + + + + + + @@ -32,45 +28,51 @@ - - -
-
- -
LOADING
- - - -
@@ -111,10 +140,10 @@
  • 登录 
  • 注册 
  • - - - - +
  • GitHub
  • +
  • 作者
  • @@ -125,38 +154,24 @@
    - -
    -
    -
    -
    - -
    -

    - 立即上传 - - - + + 客户端

    纯粹免费的图片驿站

    - - -

    Hellohao Figure bed:support several mainstream object storage, CDN acceleration is more stable. Technology constantly updated, we will always move forward on the road ahead.

    - -
    @@ -165,32 +180,25 @@
    0
    - -
    hours
    0
    - -
    mins
    0
    -
    secs
    0
    -
    -
    @@ -204,11 +212,8 @@
    - - -
    • @@ -217,15 +222,10 @@
    -
    - -
    -
    -
    @@ -255,17 +255,14 @@
    -
    -
    -
    @@ -285,15 +282,11 @@
    -
    -
    - - - +