粗糙版图片上传
1.导入依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.2</version>
</dependency>
2.配置minio地址跟对应的桶 业务层实现类
import io.minio.MinioClient; // 导入MinioClient,用于与MinIO交互
import io.minio.PutObjectArgs; // 导入PutObjectArgs,用于设置上传文件的参数
import lombok.SneakyThrows; // 导入SneakyThrows注解,用于简化异常处理
import org.springframework.stereotype.Service; // 导入Service注解,表明这是一个服务类
import org.springframework.web.multipart.MultipartFile; // 导入MultipartFile,用于处理上传的文件
@Service // 将此类声明为Spring的服务类,允许Spring进行依赖注入
public class FileUploadBrandServiceImpl implements FileUploadBrandService {
@Override
@SneakyThrows // 该注解会让方法抛出的受检异常被隐藏,简化异常处理
public String fileUpload(MultipartFile file) {
// 创建Minio客户端,通过MinioClient.Builder设置相关信息
MinioClient minioClient = MinioClient.builder()
// 设置MinIO的终端节点(服务地址)
.endpoint("http://192.168.153.128:9002")
// 设置存储的凭据,包括用户名和密码
.credentials("admin", "admin123456")
.build(); // 构建MinioClient对象
// 构造文件在存储中的路径,包含文件夹名 "brand/"
String originalFilename = "brand" + "/" + file.getOriginalFilename();
// 配置上传文件的参数,包括存储桶名称、流、文件大小和文件路径
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.bucket("spzx-1") // 指定存储桶名称
.stream(file.getInputStream(), file.getSize(), -1) // 输入流和文件大小
.object(originalFilename) // 设置文件在存储桶中的路径和文件名
.build(); // 构建PutObjectArgs对象
// 调用Minio客户端的putObject方法执行文件上传
minioClient.putObject(putObjectArgs);
// 构建并返回文件的URL,以便访问上传后的文件
String brandimgUrl = "http://192.168.153.128:9002/" + "spzx-1" + "/" + originalFilename;
return brandimgUrl; // 返回文件的公开访问URL
}
}
3.返回前端一个图片地址
4.前端需要保存表单信息时将图片url传给后端