java文件上传

Posted bozhengheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java文件上传相关的知识,希望对你有一定的参考价值。

文件上传的controller

@Autowired
    private service uploadService;
    @PostMapping("/image")
    public ResponseEntity<String> saveImage(@RequestParam("file")MultipartFile file){
        String url = uploadService.saveImage(file);
        // 判断文件URL是否为空
        if(StringUtils.isEmpty(url)){
            return ResponseEntity.badRequest().build();
        }
        //返回文件的URL
        return ResponseEntity.ok(url);
    }

service:

@Service
public class UpLoadServiceImpl implements service {
    // 定义文件的content_type类型
    private static final List<String> content_type = Arrays.asList("image/jpeg", "image/gif");
    private static final Logger LOGGER = LoggerFactory.getLogger(UpLoadServiceImpl.class);

    @Autowired
    private FastFileStorageClient storageClient;
    @Override
    public String saveImage(MultipartFile file) {
        // 获取文件的源名字
        String originalFilename = file.getOriginalFilename();
        String contentType = file.getContentType();
        try {
            //判断文件类型 是否是是图片
            if (!content_type.contains(contentType)) {
                LOGGER.info("文件类型不符:{}" + originalFilename);
                return null;
            }
            // 判断内容是否是图片
            BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
            if (bufferedImage == null) {
                LOGGER.info("文件内容不合法:{}" + originalFilename);
                return null;
            }
            //保存到本地
            // 普通的文件上传
            //file.transferTo(new File("E:\软件\项目目录\2018\image\" + originalFilename));
            // 使用 fastDFS文件上传
            StorePath uploadFile = this.storageClient.uploadFile(file.getInputStream(), file.getSize(), ".jpg", null);
            //回显url
            return "http://image.leyou.com/"+uploadFile.getFullPath();
        }catch (Exception e){
            LOGGER.info("服务器内部错误:"+originalFilename);
            return null;
        }


    }

 

以上是关于java文件上传的主要内容,如果未能解决你的问题,请参考以下文章

android的自带的httpClient 怎么上传文件

Java itext为pdf 文件添加水印核心功能代码片段

nzSQLException 读取超时错误

将存储在内存中的文件上传到s3

JS创建文件并上传服务器

ajaxFileUpload上传带参数文件及JS验证文件大小