当前位置: 首页 > 工具软件 > EditorMD > 使用案例 >

editormd文件上传

申屠锦
2023-12-01

文件上传控制类

 @PostMapping(value = "/uploadImage")
    @ResponseBody
    public Map<String, Object> uploadImg(@RequestParam(value = "editormd-image-file",
            required = true) MultipartFile multipartFile, HttpServletRequest request) {
        //文件存放的路径
        //得到工程的路径:
        System.out.println("得到工程的路径:" + System.getProperty("user.dir"));//user.dir指定了当前的路径
        //得到工程目录:
        System.out.println("得到工程目录:" + request.getSession().getServletContext().getRealPath("")); //参数可具体到包名
        //得到IE地址栏地址  request.getRequestURL()
        System.out.println("得到IE地址栏地址  :" + request.getRequestURL());
        // 得到相对地址:request.getRequestURI()
        System.out.println("得到相对地址:" + request.getRequestURI());
        // String path=request.getServletContext().getRealPath("")+"uploaded";


        String path = System.getProperty("user.dir") + "\\src\\main\\resources\\static\\upload\\";
        String fileName = multipartFile.getOriginalFilename();
        fileName = UUID.randomUUID() + fileName.substring(fileName.indexOf("."), fileName.length());
        String destFileName = path + fileName;
        System.out.println("path:" + path);

        File destFile = new File(destFileName);
        if (!destFile.exists()) {
            destFile.getParentFile().mkdirs();
        }
        String url = "http://localhost:8080" + "/upload/" + fileName;
        System.out.println("url:" + url);
        Map<String, Object> result = new HashMap<>();
        try {
            multipartFile.transferTo(destFile);
            result.put("success", 1);
            result.put("message", "图片上传成功");
            result.put("url", url);
            return result;
        } catch (IOException e) {
            e.printStackTrace();
            result.put("success", 0);
            result.put("message", "图片上传失败");
            return result;
        }
    }

静态资源映射:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {


    /*允许访问静态资源*/
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
       /* registry.addResourceHandler("/upload/**").addResourceLocations("upload:"+"/blog/");*/

        //获取文件的真实路径 work_project代表项目工程名 需要更改
        String path = System.getProperty("user.dir") + "\\src\\main\\resources\\static\\upload\\";
        String os = System.getProperty("os.name");
        if (os.toLowerCase().startsWith("win")) {
            registry.addResourceHandler("/upload/**").
                    addResourceLocations("file:" + path);
        } else {//linux和mac系统 可以根据逻辑再做处理
            registry.addResourceHandler("/upload/**").
                    addResourceLocations("file:" + path);
        }
    }
}
 类似资料: