【技能库】--Spring (Spring boot)MVC 移动端+PC端 上传图片(182)

来源:互联网 发布:webshell采集工具 编辑:程序博客网 时间:2024/05/18 02:11
@Controller@RequestMapping("pic")public class ImageUploadController {    private static final Logger logger = LoggerFactory.getLogger(ImageUploadController.class);    private static Pattern pattern = Pattern.compile("^(gif)|(jpg)|(jpeg)|(png)|(bmp)|(tif)|(tiff)$");    private static Map<String, String> contentType;    static {        contentType = Maps.newConcurrentMap();        contentType.put("image/tiff", ".tif");        contentType.put("image/fax", ".fax");        contentType.put("image/gif", ".gif");        contentType.put("image/x-icon", ".ico");        contentType.put("image/jpeg", ".jpg");        contentType.put("image/pnetvue", ".net");        contentType.put("image/png", ".png");        contentType.put("image/vnd.rn-realpix", ".rp");    }    @Resource    private UploadService uploadService;    @RequestMapping(value = "/uploadImg")    @ResponseBody    public String uploadImg(@RequestParam(value = "pic", required = true) MultipartFile file) {        final long start = System.currentTimeMillis();        try {            if (file == null || file.isEmpty()) {                throw new RuntimeException("图片为空");            }            String fileName = file.getOriginalFilename();            String extension = Files.getFileExtension(fileName);            Matcher matcher = pattern.matcher(extension.toLowerCase());            boolean match = matcher.matches();            if (!match && !contentType.containsKey(file.getContentType())) {                throw new RuntimeException("图片后缀或者类型不合法");            }            if (!match) {                fileName = fileName.concat(contentType.get(file.getContentType()));            }            if (file.getBytes().length / 1024 / 1024 > 10) {                throw new RuntimeException("图片太大");            }             File imageFile = new File(request.getServletContext().getRealPath("/") + "/"                    + fileName);            FileUtils.writeByteArrayToFile(imageFile, file.getBytes());            String url = uploadService.uploadFile(imageFile, fileName);            return url;        } catch (Exception e) {            logger.error("uploadImg error ", e);            return "";        }    }}
0 0