【springboot】一一一一访问本地磁盘路径下的图片

本文介绍如何在Spring MVC项目中设置静态资源路径和处理文件上传,包括配置`videoIconLocation`和`spring.mvc.static-path-pattern`,以及在后台更新图片的示例。重点在于处理上传文件的路径和重命名策略。
摘要由CSDN通过智能技术生成

配置properties

# 上传路径
videoIconLocation=E:/JavaCode/Carimg
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/static/,file:${videoIconLocation}

前端数据省略

后台代码

private final String IMG_URL = "E://JavaCode//Carimg//";

@RequestMapping("update")
	@ResponseBody
	public int update(MemberEntity memberEntity) {
		// 获取上传路径
		if (!memberEntity.getFileimg().isEmpty()) {
			// 重新上传图片
			String oldName = memberEntity.getFileimg().getOriginalFilename();
			String newName = XiaoUtils.getReloadName(oldName);
			try {
				byte[] bytes = memberEntity.getFileimg().getBytes();
				Path path = Paths.get(IMG_URL + newName);
				Files.write(path, bytes);
			} catch (Exception e) {
				e.printStackTrace();
			}
			memberEntity.setRimg(newName);
		}
		memberService.update(memberEntity);
		System.out.println(memberEntity);
		return 1;
	}
首先,我们需要在数据库中创建一个表来存储图片的信息,包括图片名称、图片路径、上传时间等字段。 然后,在Spring Boot应用程序中,我们可以使用Spring的MultipartFile接口来处理上传的图片文件,并将其保存到本地磁盘上。 接下来,我们需要将图片路径信息保存到数据库中。一种常见的方法是将图片路径保存到一个字符串类型的字段中。 以下是一个示例代码,演示如何上传图片并将其路径保存到数据库中: 1. 创建一个实体类 Image,用于映射数据库表: ``` @Entity @Table(name = "image") public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "path") private String path; @Column(name = "upload_time") private LocalDateTime uploadTime; // getters and setters } ``` 2. 创建一个接口 ImageRepository,用于操作数据库中的 Image 表: ``` @Repository public interface ImageRepository extends JpaRepository<Image, Long> { } ``` 3. 创建一个控制器 ImageController,用于处理上传图片的请求: ``` @RestController @RequestMapping("/images") public class ImageController { @Autowired private ImageRepository imageRepository; @PostMapping("/upload") public ResponseEntity<?> uploadFile(@RequestParam("file") MultipartFile file) { try { // 保存图片到本地磁盘 String fileName = StringUtils.cleanPath(file.getOriginalFilename()); Path path = Paths.get("uploads/" + fileName); Files.copy(file.getInputStream(), path, StandardCopyOption.REPLACE_EXISTING); // 将图片信息保存到数据库中 Image image = new Image(); image.setName(fileName); image.setPath(path.toString()); image.setUploadTime(LocalDateTime.now()); imageRepository.save(image); return ResponseEntity.ok().build(); } catch (IOException e) { e.printStackTrace(); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } } } ``` 4. 在Spring Boot应用程序中配置上传文件的存储路径: ``` spring.servlet.multipart.enabled=true spring.servlet.multipart.file-size-threshold=2KB spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-request-size=215MB ``` 在以上示例代码中,我们使用了Spring Boot提供的MultipartFile接口来处理上传的图片文件,并使用了Files.copy()方法将图片保存到本地磁盘上。然后,我们将图片路径信息保存到数据库中的Image表中。最后,我们在应用程序配置文件中设置了上传文件的存储路径和大小限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值