文件上传下载相关

1. Controllerjava

import org.springframework.web.multipart.MultipartHttpServletRequest;
    import org.springframework.web.multipart.commons.CommonsMultipartFile;

    public Result uploadController(MultipartFile file, HttpServletRequest request) throws Exception {

        /**
         * 也能够直接经过request获取文件
         */
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");

        /**
         * 图片访问url
         * http://192.168.11.95:8080/relativePath
         */
        InetAddress address = InetAddress.getLocalHost();
        String url = request.getScheme() + "://" + address.getHostAddress() + ":" + request.getServerPort() + "/" + relativePath;

        /**
         * 获取项目根路径
         * D:\ideas\xxx\out\artifacts\xxx_war_exploded\
         */
        ServletContext sr = request.getSession().getServletContext();
        String path = sr.getRealPath("/") + imageConfig.getDir();
       
        return save(file.getInputStream());
    }

 

2. Serviceweb

import org.springframework.web.context.request.RequestContextHolder;
        import org.springframework.web.context.request.ServletRequestAttributes;


        /**
         * 获取项目根路径
         */
        HttpServletRequest request = ((ServletRequestAttributes) 
        RequestContextHolder.getRequestAttributes()).getRequest();
        String root = request.getSession().getServletContext().getRealPath("/");

        /**
         * 目录不存在则建立
         * fileName = ...../upload/1.img
         */
        String dir = fileName.substring(0, fileName.lastIndexOf(File.separator));
        File dirFile = new File(dir);
        if (!dirFile.exists())
            dirFile.mkdirs();

        /**
         * 建立文件
         */
        File file = new File(fileName);
        if (!file.exists())
            file.createNewFile();

3. 注意点spring

  • 在service层中根据Spring提供的RequestContextHolder获取request,以后该干啥干啥。
  • SpringBoot war 在 tomcat 中解压后,根目录是 ../webapps/项目名/
  • 实际上,应该上传到ftp服务器,而后根据配置返回文件或图片的http访问路径

    

相关文章
相关标签/搜索