Spring Boot文件上传

POM.xml

    
    
        org.springframework.boot
        spring-boot-starter-thymeleaf
    

上传页面

resource目录下新建templates,创建文件uploadimg.html




  
    uploadimg.html
 
    
    
    
 
    
 
  
 
  
  
图片

上传Controller

@Controller
@Api(value = "/test", tags = "文件上传")  //swagger分类标题注解
public class UploadController {


    //跳转到上传文件的页面
    @RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
    public String goUploadImg() {
        //跳转到 templates 目录下的 uploadimg.html
        return "uploadimg";
    }

    //处理文件上传
    @RequestMapping(value="/testuploadimg", method = RequestMethod.POST)
    public @ResponseBody String uploadImg(@RequestParam("file") MultipartFile file,
                                          HttpServletRequest request) {
        String contentType = file.getContentType();
        String fileName = file.getOriginalFilename();
        /*System.out.println("fileName-->" + fileName);
        System.out.println("getContentType-->" + contentType);*/
        String filePath = request.getSession().getServletContext().getRealPath("imgupload/");
        try {
            FileUtil.uploadFile(file.getBytes(), filePath, fileName);
        } catch (Exception e) {
            // TODO: handle exception
        }
        //返回json
        return "uploadimg success";
    }
}

上传工具类FileUtil.java

public class FileUtil {
    public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
        File targetFile = new File(filePath);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        FileOutputStream out = new FileOutputStream(filePath+fileName);
        out.write(file);
        out.flush();
        out.close();
    }
}

测试

在浏览器中输入http://localhost:8080/testuploadimg

你可能感兴趣的:(Spring Boot文件上传)