解决SpringBoot上传图片回显的映射配置问题

1、SpringBoot上传图片回显的大致流程:
1、用流上传,2、建立文件,保存图片,3、回显配置映射。

2、问题描述:
win10环境下,本地可以上传图片,也能回显。但是Linux服务器下运行上传成功但是回显图片失败。

3、关键:
其中最关键的地方就是配置本地和浏览器的地址映射,导致了我图片已经上传到本地,但是浏览器回显报错。

4、正确的映射配置:

win10:(映射的地址末尾不加符号 / )

 @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/files/**").addResourceLocations("file:///G:/ChinaTelecom/upload/images");
    }

Linux下的配置:(映射的地址最后要加上符号 / )

 @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/files/**").addResourceLocations("file:ChinaTelecom/upload/images/");
    }

在Linux下的映射要注意addResourceLocations中地址末尾加个/

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,实现头像上传并回显的步骤如下: 1. 添加文件上传依赖 在`pom.xml`中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> ``` 2. 编写上传页面 在HTML页面中添加上传表单: ```html <form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="Upload"/> </form> ``` 3. 编写上传接口 在控制器中添加上传接口: ```java @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file, Model model) { String fileName = StringUtils.cleanPath(file.getOriginalFilename()); try { FileUploadUtil.saveFile(uploadDir, fileName, file); } catch (IOException e) { e.printStackTrace(); } model.addAttribute("message", "File uploaded successfully!"); model.addAttribute("fileName", fileName); return "upload-result"; } ``` 其中,`FileUploadUtil`是一个工具类,用于保存文件: ```java public class FileUploadUtil { public static void saveFile(String uploadDir, String fileName, MultipartFile multipartFile) throws IOException { Path uploadPath = Paths.get(uploadDir); if (!Files.exists(uploadPath)) { Files.createDirectories(uploadPath); } try (InputStream inputStream = multipartFile.getInputStream()) { Path filePath = uploadPath.resolve(fileName); Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING); } catch (IOException ioe) { throw new IOException("Could not save image file: " + fileName, ioe); } } } ``` 4. 显示上传结果 在上传成功后,跳转到上传结果页面,显示上传的文件名和头像: ```html <h1>Upload Result</h1> <p th:text="'File uploaded successfully: ' + ${fileName}"></p> <img th:src="@{${'/uploads/' + fileName}}" width="200" height="200"/> ``` 其中,`/uploads/`是上传文件保存的目录。需要在`application.properties`中添加以下配置: ```properties 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 # Upload directory for files file.upload-dir=uploads ``` 在控制器中添加注入`uploadDir`的代码: ```java @Value("${file.upload-dir}") private String uploadDir; ``` 5. 运行应用程序 现在,启动Spring Boot应用程序并访问上传页面。选择要上传的文件并单击“上传”按钮。上传成功后,将显示上传结果页面,并显示上传的文件名和头像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值