springboot图片上传


• application.yml

server: port: 8082 spring: application: name: upload servlet: multipart: max-file-size: 5MB

• uploadController.java

import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; /** * 文件上传 */ @Controller @RequestMapping("/upload") public class UploadController { @Autowired private UploadService uploadService; @PostMapping("/image") public ResponseEntity<String> uploadImage(@RequestParam("file") MultipartFile file) { String url = uploadService.uploadImage(file); return StringUtils.isBlank(url) ? ResponseEntity.badRequest().build() : ResponseEntity.status(HttpStatus.CREATED).body(url); } }

• uploadService.java

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.List; /** * 文件上传 */ @Service public class UploadServiceImpl implements UploadService { //支持的图片类型
    private static final List<String> CONTENT_TYPE = Arrays.asList("image/gif", "image/jpeg","image/png"); //日志
    private static final Logger LOGGER = LoggerFactory.getLogger(UploadService.class); @Override public String uploadImage(MultipartFile file) { String originalFilename = file.getOriginalFilename(); //建议文件类型
        String contentType = file.getContentType(); if (!CONTENT_TYPE.contains(contentType)) { LOGGER.info("文件类型不合法:{}", originalFilename); return null; } try { //检验文件内容
            BufferedImage read = ImageIO.read(file.getInputStream()); if (read == null) { LOGGER.info("文件内容不合法:{}", originalFilename); return null; } //保存文件
            file.transferTo(new File("D:\\Code\\JavaCode\\leyou\\uploadImage\\" + originalFilename)); } catch (IOException e) { LOGGER.error("服务器内部错误->:{}", originalFilename); e.printStackTrace(); }
        //返回图片路径
return "http://**.***.com/" + originalFilename; } }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM