1、引入依赖
<!-- FastDFS 分布式文件系统 -->
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.27.2</version>
</dependency>
2、配置文件中写入基本信息
# FastDFS配置
fdfs:
domain: http://4.129..12.12
soTimeout: 3000
connectTimeout: 2000
trackerList: 4.129..12.12:22122
3、工具类
@Component
public class FastDfsUtils{
/**
* 域名或本机访问地址
*/
@Value("${fdfs.domain}")
public String domain;
@Autowired
private FastFileStorageClient storageClient;
/**
* FastDfs文件上传接口
*
* @param file 上传的文件
* @return 访问地址
* @throws Exception
*/
@Override
public String uploadFile(MultipartFile file) throws Exception
{
InputStream inputStream = file.getInputStream();
StorePath storePath = storageClient.uploadFile(inputStream, file.getSize(),
FileTypeUtils.getExtension(file), null);
inputStream.close();
return domain + "/" + storePath.getFullPath();
}
}
4、调用方法
@RestController
public class SysFileController
{
@Autowired
private FastDfsUtils fastDfsUtils;
/**
* 文件上传请求
*/
@PostMapping("upload")
public R<SysFile> upload(MultipartFile file)
{
try
{
// 上传并返回访问地址
String url = fastDfsUtils.uploadFile(file);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(url));
sysFile.setUrl(url);
return R.ok(sysFile);
}
catch (Exception e)
{
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
}
备注:文件处理工具类
FileUtiles.java