SpringBoot 集成 fastdfs-client-java 遇到的问题以及解决方案

鼠色猫 的个人博客 记录精彩的程序人生 本文由博客端 https://juneblog.online 主动推送
本贴最后更新于 215 天前,其中的信息可能已经事过境迁

SpringBoot 集成 fastdfs-client-java 遇到的问题以及解决方案

云服务部署 fdfs

如果你是在阿里云服务器或者别的服务器上搭建的 fdfs,那么你想要访问到 fdfs 服务,storaged.conf 里面的 tracker_server 必须是外网地址,并且需要在安全组里面开放 8888 22122 23000 这些端口

multipart 的两种使用方式

SpringBoot 在使用 multipart 的时候会出现冲突的问题,原因好像是 SpringBoot 自带的 org.springframework.web.multipart.MultipartFile 和 Multipart 冲突导致前端传到后台的文件为 null,则需要在启动类注解 @SpringBootApplication 后加上(exclude = MultipartAutoConfiguration.class),意思就是跟他字面意思一样,排除 Multipart 的自动配置,选择使用另外的方法进行配置

  1. 老方法则是使用 commons 依赖的方法,创建 multipartResolver ,这里提供 SpringMVC 和 SpringBoot 两种案例
// SpringBoot
@Configuration
public class uploadConfig {

    @Bean(name="multipartResolver")
    public MultipartResolver multipartResolver() {
        return new CommonsMultipartResolver();
    }
}

可能出现的异常:BeanCreationException: Error creating bean with name 'multipartResolver'

解决方案:导包

<dependency>
 	<groupId>commons-fileupload</groupId>
 	<artifactId>commons-fileupload</artifactId>
 	<version>1.4</version>
</dependency>
  1. 使用 SpringBoot 自动集成的 MultipartFile

使用 MultipartFile 则不需要创建配置类,直接写控制类,并在对应形参上加上 @Requestpart 注解,不加好像也不会出问题(之前我没加是出现了 file 为 null 的情况,后来加上就好了,但是之后我把 @RequestPart 去掉之后又可以取到了),但建议加上

@PostMapping("/uploadFile")

    public String updloadFile(@RequestPart MultipartFile file, String name){

        System.out.println(file);
        //System.out.println(name);
        String fileName = null;
        //文件上传
        try {
            //fileName虚拟机的地址
            fileName = FastDfsUtils.upload(file.getBytes(), FileUtils.getFileSuffix(file.getOriginalFilename()));
            System.out.println(domain + fileName);
            session.setAttribute("MyGirlFriend",domain+fileName);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "mypic";
    }a

最后附上源码,感兴趣的小伙伴可以看一下

https://github.com/VULAN2019/multipart-demo

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    793 引用 • 1377 回帖 • 687 关注
  • FastDFS

    FastDFS 是用 C 语言编写的一款开源分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

    17 引用 • 10 回帖 • 1 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...