Linux搭建FastDFS文件服务器并实现springboot上传文件到FastDFS服务器 (3)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTdTvIax-1572494243013)(D:\文件笔记\image\1572486117626.png)]

到/usr/local/nginx/conf目录下,修改nginx的配置文件nginx.conf,保存退出。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SpO9V1NB-1572494243013)(D:\文件笔记\image\1572486540981.png)]

启动nginx

[root@192 sbin]# pwd /usr/local/nginx/sbin [root@192 sbin]# ./nginx

然后现在就可以在浏览器访问刚才那个文件的路径了。

在这里插入图片描述

四,springboot访问FastDFS实现文件上传

1,添加依赖

<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.1-RELEASE</version> </dependency>

2,在启动类上添加注解引入配置文件类

@Import(FdfsClientConfig.class)

3,在application.properties加入FastDFS的相关配置

# 超时时间 fdfs.so-timeout=1500 # 连接的超时时间 fdfs.connect-timeout=600 # 连接池 fdfs.pool.jmx-enabled=false # 缩略图尺寸 fdfs.thumb-image.height=100 fdfs.thumb-image.width=100 # tracker服务跟踪器的地址 fdfs.tracker-list=192.168.186.129:22122

这里插一句,提前先把linux的防火墙设置为22122端口和23000端口放行,否则后续的测试会因为连不上跟踪器报错。

@Autowired FastFileStorageClient fastFileStorageClient;//直接引入 @RequestMapping("/fastdfs") @ResponseBody public String fastdfs() throws FileNotFoundException { File file=new File("D://文件笔记//image//1571884758247.png"); //文件名 String fileName=file.getName(); //后缀名 String extName=fileName.substring(fileName.lastIndexOf(".")+1); //创建流 FileInputStream fileInputStream=new FileInputStream(file); //四个参数(输入流,文件大小,后缀名,null),返回一个路径 StorePath storePath = fastFileStorageClient.uploadFile(fileInputStream, file.length(), extName, null); //不同路径 System.out.println(storePath.getFullPath()); System.out.println(storePath.getPath()); System.out.println(storePath.getGroup()); return "图片上传成功,并调皮的给您返回一个路径"; }

分别看浏览器和控制台

在这里插入图片描述

然后在浏览器输入访问路径(nginx的ip地址和端口加上storePath.getFullPath()的路径),例如

:80/group1/M00/00/00/wKi6gV26SV6ALJu6AAB5lQx82SU564.png

然后就可以访问刚才上传的图片了

在这里插入图片描述

五,改造成业务代码

html表单项

<form action="/demo/fastdfs" method="post" enctype="multipart/form-data"> fastDFS测试:<input type="file"><input type="submit" value="测试上传"> </form>

controller上传业务代码

@Autowired FastFileStorageClient fastFileStorageClient; /** *fastDFS服务器测试文件上传 */ @RequestMapping("/fastdfs") @ResponseBody public String fastdfs(@RequestParam(value = "test") MultipartFile test) throws IOException { //文件名 String fileName=test.getOriginalFilename(); //后缀名 String extName=fileName.substring(fileName.lastIndexOf(".")+1); //四个参数(输入流,文件大小,后缀名,null),返回一个路径 StorePath storePath = fastFileStorageClient.uploadFile(test.getInputStream(),test.getSize(), extName, null); //不同路径 System.out.println(storePath.getFullPath()); System.out.println(storePath.getPath()); System.out.println(storePath.getGroup()); return "图片上传成功,并调皮的给您返回一个路径"; }

控制台打印

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwfyx.html