feature:代码初始化。

This commit is contained in:
tianyongbao
2024-04-19 09:24:42 +08:00
commit 01a7c88b78
547 changed files with 57720 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
package com.ruoyi.file.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import com.ruoyi.common.core.utils.file.FileTypeUtils;
import javax.servlet.http.HttpServletResponse;
/**
* FastDFS 文件存储
*
* @author ruoyi
*/
@Service
public class FastDfsSysFileServiceImpl implements ISysFileService
{
/**
* 域名或本机访问地址
*/
@Value("${fdfs.domain}")
public String domain;
@Autowired
private FastFileStorageClient storageClient;
/**
* FastDfs文件上传接口
*
* @param file 上传的文件
* @return 访问地址
* @throws Exception
*/
@Override
public String uploadFile(MultipartFile file) throws Exception
{
StorePath storePath = storageClient.uploadFile(file.getInputStream(), file.getSize(),
FileTypeUtils.getExtension(file), null);
// return domain + "/" + storePath.getFullPath();
return "/" + storePath.getFullPath();
}
/**
* @param name 文件名称
*/
@Override
public void download(HttpServletResponse response, String name) {
}
}

View File

@@ -0,0 +1,30 @@
package com.ruoyi.file.service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* 文件上传接口
*
* @author ruoyi
*/
public interface ISysFileService
{
/**
* 文件上传接口
*
* @param file 上传的文件
* @return 访问地址
* @throws Exception
*/
public String uploadFile(MultipartFile file) throws Exception;
/**
* 文件下载接口
*
* @param name 文件名称
*/
public void download(HttpServletResponse response, String name);
}

View File

@@ -0,0 +1,56 @@
package com.ruoyi.file.service;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.file.utils.FileUploadUtils;
import javax.servlet.http.HttpServletResponse;
/**
* 本地文件存储
*
* @author ruoyi
*/
@Service
public class LocalSysFileServiceImpl implements ISysFileService
{
/**
* 资源映射路径 前缀
*/
@Value("${file.prefix}")
public String localFilePrefix;
/**
* 域名或本机访问地址
*/
@Value("${file.domain}")
public String domain;
/**
* 上传文件存储在本地的根路径
*/
@Value("${file.path}")
private String localFilePath;
/**
* 本地文件上传接口
*
* @param file 上传的文件
* @return 访问地址
* @throws Exception
*/
@Override
public String uploadFile(MultipartFile file) throws Exception
{
String name = FileUploadUtils.upload(localFilePath, file);
// String url = domain + localFilePrefix + name;
String url = localFilePrefix + name;
return url;
}
@Override
public void download(HttpServletResponse response, String name) {
}
}

View File

@@ -0,0 +1,79 @@
package com.ruoyi.file.service;
import io.minio.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.file.config.MinioConfig;
import com.ruoyi.file.utils.FileUploadUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import org.apache.commons.io.IOUtils;
/**
* Minio 文件存储
*
* @author ruoyi
*/
@Primary
@Service
public class MinioSysFileServiceImpl implements ISysFileService
{
@Autowired
private MinioConfig minioConfig;
@Autowired
private MinioClient client;
@Value("${minio.bucketName}")
public String bucketName;
/**
* 本地文件上传接口
*
* @param file 上传的文件
* @return 访问地址
* @throws Exception
*/
@Override
public String uploadFile(MultipartFile file) throws Exception
{
String fileName = FileUploadUtils.extractFilename(file);
PutObjectArgs args = PutObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(fileName)
.stream(file.getInputStream(), file.getSize(), -1)
.contentType(file.getContentType())
.build();
client.putObject(args);
// return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
// return "/" + minioConfig.getBucketName() + "/" + fileName;
return "/fileUrl/" + minioConfig.getBucketName() + "/" + fileName;
}
/**
* 单文件下载
* @param fileNamebucketName 的后缀名称
*/
public void download(HttpServletResponse response, String fileName){
InputStream inputStream;
try {
StatObjectArgs statObjectArgs = StatObjectArgs.builder().bucket(bucketName).object(fileName).build();
GetObjectArgs getObjectArgs = GetObjectArgs.builder().bucket(bucketName).object(fileName).build();
StatObjectResponse stat = client.statObject(statObjectArgs);
inputStream = client.getObject(getObjectArgs);
response.setContentType(stat.contentType());
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
IOUtils.copy(inputStream, response.getOutputStream());
inputStream.close();
} catch (Exception e){
e.printStackTrace();
}
}
}