案例开发-文件管理服务开发(一)| 学习笔记

简介: 快速学习案例开发-文件管理服务开发。

开发者学堂课程【Spring Boot+Vue.js+FastDFS实现分布式图片服务器 :案例开发-文件管理服务开发(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/742/detail/13146


案例开发-文件管理服务开发(一)

 

内容介绍

一、搭建文件管理服务

二、启动文件管理服务

三、总结

 

在前面已经实现了通过 http 成功访问 storage 上面的图片,fastDFS 已经安装完毕,接下来进行文件管理服务。

 

一、搭建文件管理服务

图片16.png

1.前面主要是前后端分离的架构,上传文件的 html 是前端,文件管理服务是后端服务端。

文件管理服务提供通过 http 方式上传文件,删除文件、查询文件的功能,用户上传很多文件,管理员通过文件管理服务对文件服务器上的文件进行管理。

文件管理服务采用 Spring Boot 开发,文件管理服务通过与 fastDFS 交互最终将用户上传的文件存储到 fastDFS 上。

在 fastDFS 入门程序上继续开发:

图片17.png 

2. 搭建环境:

SpringBoot 依赖以及 web 应用包已经成功加入,接下来进行添加一些准备的工作。

(1)创建包  命名为:cn.itcats.javaee.fastdsf

图片18.png

(2) 创建模型 model  是一个 FileSystem 文件系统。里面有文件 Id,文件路径,文件大小,文件名称等等。

(3) 模型创建方法:有一些基本的属性,还有 get/set 方法!将其复制到环境中。

图片19.png

(4)创建包:cn.itcats.javaee.fastdsf.controller,

(5)在 controller 下面创建将来客户端即前端。用户上传图片请求 controller,将其图片上传到文件管理服务上。

(6)创建 FileServerController

@restController

@requestMapping(“/filesystem”)

Public class FileServerController{

添加注解:

@PostMapping(“/upload”) //上传图片并且添加路径

@ResponseBody   //接收数据

Public FileSystem upload(@RequestParam(“file”) MultpartFile file){     //刚刚创建的模型  

FileSystem  fileSystem =new FileSystem //定义对象

//MultpartFile file 将来传给客户端的名称是根据

@RequestParam(“”)进行指定 将来客户端传给服务端的名称就是 file

//当客户端通过 http 请求到文件管理服务 controller 方法,就是刚刚写的 upload 方法,即用户请求 html 页面,要上传图片的时候,就会将页面上传的图片上传到 upload 方法中。

//将文件先存储在 web 服务器上(本机),再调用 fastDFS 的 client 将文件上传到 fastDFS 服务器。

//先完成第一步:将文件存储到 web 服务器上。再借助测试代码,将本机文件上传到 fastDFS 上面

图片20.png

String OriginalFilename= file.getOriginalFilename()  //得到原始名称

String extention=

OriginalFilename.substring(originalFilename.lastIndexOf(“.”))  

//最后一个点开始的内容即拓展名

因为最终要调用测试代码,上面的文件地址就是刚刚上传的文件,而该文件存在于 web 服务器上,所以要拿到文件的拓展名,既然要拿到拓展名就要拿到原始名称。

拿到拓展名后就可以修改测试代码中,相应的位置。要将上传成功的图片存储再 web 服务器(本机)上的文件上传到 fastDFS。要找到刚刚上传的文件的物理路径。

图片21.png

当用户调用 file 的时候就可以拿到  但 fiel 是临时文件,可以通过一个方法将 file 放到物理路径上。

//防止重名,打造一个文件名

Striing fileNameNew=UUID.randomUUID()+extention;

//定义 file,使用 file 存储上传的文件,就可以将新上传的文件上传到物理路径下。并且可以拿到文件的地址。

File file1=new File(“F:\\develop\\upload\\”+fileNameNew)

fiel.transferTo(file1);

//获取新上传文件的物理路径

String newFilePath= File.getAbsolutePath()

//将获取到的物理路径放到刚刚的位置上,这就是新文件路径

图片22.png

filesyStem.setFileId(fileIId);

filesyStem.setFilePath(fileId);

filesyStem.setFileName(originalFilename);

return null;   //防止报错

}

3. 首先用户在 html 页面点击上传文件,通过 http 请求到文件管理服务中的 contoller 方法,controller 方被调用,将页面上传的文件传到 upload 方法中,文件得到文件的原始名称,拿到文件的原始名称的目的是获取文件的拓展名,取出拓展名,并且放到下方测试代码中。

4.定义一个新文件,将上传到文件放到指定的路径中,写进新文件后,获取新上传文件的物理路径。接下来的代码是之前测试过的代码,在文件元信息一栏可以将文件的名称写进去。

接下来就可以调用 upload 方法,返回文件 ID /fileID ,最终要返回  FileSystem。

在得到文件 ID 后,将文件 ID 写入 FileSystem 对象中的 setFileID、setFilePath 中还有 setFileName 中写入原始名称

//最终调用 service 以及 dao 将文件的路径存储到数据库中,由于时间关系就先不完成。以上就完成了文件上传的代码编写。

相关文章
|
小程序 JavaScript 数据库
云开发(微信-小程序)笔记(十一)---- 分页,不简单啊
云开发(微信-小程序)笔记(十一)---- 分页,不简单啊
123 0
|
小程序 数据可视化 数据库
云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例
云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例
518 0
|
前端开发 Java 开发者
案例开发-文件管理服务开发(二)| 学习笔记
快速学习案例开发-文件管理服务开发。
案例开发-文件管理服务开发(二)| 学习笔记
|
JavaScript 前端开发 Java
案例开发-前端开发及调试(一)| 学习笔记
快速学习案例开发-前端开发及调试。
案例开发-前端开发及调试(一)| 学习笔记
|
存储 JSON 前端开发
案例开发-前端开发及调试(二)| 学习笔记
快速学习案例开发-前端开发及调试。
110 0
案例开发-前端开发及调试(二)| 学习笔记
|
前端开发 数据库 数据安全/隐私保护
总结项目功能特点(后台系统1)| 学习笔记
快速学习 总结项目功能特点(后台系统1)
162 0
总结项目功能特点(后台系统1)| 学习笔记
|
搜索推荐 Python
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十一)
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十一)
183 0
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十一)
|
Python
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十二)
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十二)
130 0
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十二)
|
Python
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(七)
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(七)
181 0
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(七)
|
Python
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十)
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十)
178 0
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)(十)