Springboot 设置 windows和Linux临时上传路径

原文链接:https://blog.csdn.net/qq_36476972/article/details/107457256

@Bean
    MultipartConfigElement multipartConfigElement(){
        MultipartConfigFactory factory = new MultipartConfigFactory();
        String systemName = System.getProperty("os.name");
        System.out.println("Current System Is : " + systemName);
        if(!StringUtils.isBlank(systemName) && systemName.toLowerCase().contains("linux")){
            // Linux临时路径
            factory.setLocation("/data/apps/temp");
        }else{
        	// Windows临时路径
            factory.setLocation("/data/apps/temp");
        }
        return factory.createMultipartConfig();
    }

如果Linux下没有路径,则需要创建文件夹,创建文件

			String filePath = "/data/aaa/";
            File root = new File(filePath);
            // 按照指定的路径创建文件夹
            root.setWritable(true, false);
            if(root.exists()){
                log.info("The file already exits.");
            }else{
                boolean isCreate = root.mkdir();
                if(isCreate){
                    log.info("File created successfully.");
                }else{
                    log.info("File created fail.");
                }
            }
      		String path = filePath+"/"+fileName+fileExt;
            file = new File(path);
            file.createNewFile();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 根据您的要求,给出一个简单的SpringBoot图片上传代码:@RequestMapping("/upload") public String uploadImage(@RequestParam("image") MultipartFile image, @RequestParam("path") String path){ if(image.isEmpty()){ return "上传失败,请选择要上传的文件"; } String fileName = image.getOriginalFilename(); //指定上传路径 String destFileName = path + "/" + fileName; File destFile = new File(destFileName); try { image.transferTo(destFile); return "上传成功"; } catch (IOException e) { e.printStackTrace(); return "上传失败"; } } ### 回答2: Spring Boot 的图片上传功能可以通过使用 Spring MVC 的 MultipartFile 类实现。下面是一个基本的 Spring Boot 图片上传代码,并且指定上传路径的示例: 首先,在 pom.xml 中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 接下来,创建一个名为 "FileController" 的控制器类,并在其中编写以下代码: ```java import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; @RestController public class FileController { @PostMapping("/upload") public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) { // 指定上传路径 String uploadPath = "C:/uploads/"; // 检查上传路径是否存在,如果不存在,则创建文件夹 File directory = new File(uploadPath); if (!directory.exists()) { directory.mkdir(); } // 获取上传文件名 String fileName = file.getOriginalFilename(); // 创建文件对象,指定上传路径和文件名 File serverFile = new File(uploadPath + fileName); try { // 保存上传文件到指定路径 file.transferTo(serverFile); return new ResponseEntity<>("文件上传成功", HttpStatus.OK); } catch (IOException e) { e.printStackTrace(); return new ResponseEntity<>("文件上传失败", HttpStatus.INTERNAL_SERVER_ERROR); } } } ``` 在上述代码中,我们创建了一个 `uploadFile` 方法,该方法接收一个 `MultipartFile` 类型的参数 `file`,用于接收上传的文件。然后,我们指定了文件的上传路径 `uploadPath`,并创建了一个对应的文件夹。接着,我们获取了上传文件的文件名,并创建了一个 `File` 对象来保存上传的文件。最后,通过 `transferTo` 方法将上传的文件保存到指定的路径中。 在主应用程序类中,使用 `@SpringBootApplication` 注解按照如下方式启动 Spring Boot 应用: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootImageUploadApplication { public static void main(String[] args) { SpringApplication.run(SpringBootImageUploadApplication.class, args); } } ``` 以上就是一个基本的 Spring Boot 图片上传代码,并且指定了上传路径。当你向这个控制器发送 POST 请求,同时附带一个名为 `file` 的文件参数时,该文件将会被上传到指定的路径中。 ### 回答3: 使用Spring Boot进行图片上传需要使用到两个核心的依赖:spring-boot-starter-web和spring-boot-starter-websocket。 首先,在pom.xml文件中添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> </dependencies> ``` 接下来,在application.properties文件中配置上传路径: ```properties # 指定上传文件的路径 upload.path=/path/to/upload ``` 然后,创建一个Controller类用于处理图片上传请求: ```java @RestController @RequestMapping("/api") public class UploadController { @Value("${upload.path}") private String uploadPath; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "上传文件不能为空"; } try { String fileName = file.getOriginalFilename(); String filePath = Paths.get(uploadPath, fileName).toString(); File dest = new File(filePath); file.transferTo(dest); return "文件上传成功"; } catch (IOException e) { return "文件上传失败:" + e.getMessage(); } } } ``` 这里使用了@RequestParam注解来接收上传的文件,并使用@Value注解从配置文件中读取上传路径。在方法中,首先判断文件是否为空,然后根据上传路径和文件名创建目标文件,最后使用transferTo()方法将文件写入目标文件。 最后,启动Spring Boot应用程序,并访问以下URL进行图片上传: ``` http://localhost:8080/api/upload ``` 可以通过Postman等工具来进行测试,选择要上传的图片文件,然后发送POST请求即可。 注意:上传文件的路径需要提前在服务器上创建好,并且确保应用程序有权限写入该目录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值