mirror of
https://github.com/201206030/novel-plus.git
synced 2025-07-01 15:26:37 +00:00
94 lines
3.2 KiB
Java
94 lines
3.2 KiB
Java
package com.java2nb.novel.controller;
|
|
|
|
import com.java2nb.novel.core.bean.ResultBean;
|
|
import com.java2nb.novel.core.cache.CacheService;
|
|
import com.java2nb.novel.core.utils.Constants;
|
|
import com.java2nb.novel.core.utils.RandomValidateCodeUtil;
|
|
import com.java2nb.novel.core.utils.RestTemplateUtil;
|
|
import com.java2nb.novel.core.utils.UUIDUtil;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.codec.Charsets;
|
|
import org.apache.http.client.utils.DateUtils;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.core.io.Resource;
|
|
import org.springframework.http.HttpEntity;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpMethod;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import javax.imageio.ImageIO;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpSession;
|
|
import java.io.*;
|
|
import java.util.Date;
|
|
import java.util.Objects;
|
|
|
|
/**
|
|
* @author 11797
|
|
*/
|
|
@Controller
|
|
@RequestMapping("file")
|
|
@Slf4j
|
|
@RequiredArgsConstructor
|
|
public class FileController {
|
|
|
|
private final CacheService cacheService;
|
|
|
|
@Value("${pic.save.path}")
|
|
private String picSavePath;
|
|
|
|
/**
|
|
* 生成验证码
|
|
*/
|
|
@GetMapping(value = "getVerify")
|
|
public void getVerify(HttpServletRequest request, HttpServletResponse response) {
|
|
try {
|
|
//设置相应类型,告诉浏览器输出的内容为图片
|
|
response.setContentType("image/jpeg");
|
|
//设置响应头信息,告诉浏览器不要缓存此内容
|
|
response.setHeader("Pragma", "No-cache");
|
|
response.setHeader("Cache-Control", "no-cache");
|
|
response.setDateHeader("Expire", 0);
|
|
RandomValidateCodeUtil randomValidateCode = new RandomValidateCodeUtil();
|
|
//输出验证码图片方法
|
|
randomValidateCode.getRandcode(cacheService, response);
|
|
} catch (Exception e) {
|
|
log.error("获取验证码失败>>>> ", e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 文件上传
|
|
*/
|
|
@ResponseBody
|
|
@PostMapping("/upload")
|
|
ResultBean upload(@RequestParam("file") MultipartFile file) {
|
|
Date currentDate = new Date();
|
|
try {
|
|
String savePath =
|
|
Constants.LOCAL_PIC_PREFIX + DateUtils.formatDate(currentDate, "yyyy") + "/" +
|
|
DateUtils.formatDate(currentDate, "MM") + "/" +
|
|
DateUtils.formatDate(currentDate, "dd") ;
|
|
String oriName = file.getOriginalFilename();
|
|
String saveFileName = UUIDUtil.getUUID32() + oriName.substring(oriName.lastIndexOf("."));
|
|
File saveFile = new File( picSavePath + savePath, saveFileName);
|
|
if (!saveFile.getParentFile().exists()) {
|
|
saveFile.getParentFile().mkdirs();
|
|
}
|
|
file.transferTo(saveFile);
|
|
return ResultBean.ok(savePath+"/"+saveFileName);
|
|
} catch (Exception e) {
|
|
log.error(e.getMessage(), e);
|
|
return ResultBean.error();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|