SpringBoot文件上传单文件多文件上传

简介: SpringBoot文件上传单文件多文件上传
  //单个文件 input 中的name="xx",MultipartFile xx必须一致
    @RequestMapping("upload")
    public String upload(HttpServletRequest request,@RequestParam  MultipartFile name,Model model) throws IllegalStateException, IOException {
        System.out.println("------------------开始上传文件---------------------");
        String path = request.getSession().getServletContext().getRealPath("upload");  
        //获得文件名字
        String filename = name.getOriginalFilename();
        if(null != filename && filename.length() != 0){
            //获得上传文件.gpj;
            String suffix = filename.substring(filename.lastIndexOf("."),filename.length());
            UUID uuid = UUID.randomUUID();
            String newFileName = uuid+suffix;
            File targetFile = new File(path,newFileName);
            if(!targetFile.exists()){
                  targetFile.mkdirs();  
               }
            name.transferTo(targetFile); 
            model.addAttribute("path", path+File.separator+newFileName);
        }
        
        return "show";
    }
    
    //多个文件 input name 不同 的多文件上传
        @RequestMapping("uploads")
        public String uploads(HttpServletRequest request,Model model) throws IllegalStateException, IOException {
            MultipartHttpServletRequest msr = (MultipartHttpServletRequest)request;
            List name = msr.getFiles("name");
            List file = msr.getFiles("file");
            List jpg = msr.getFiles("jpg");
            System.out.println("------------------开始上传文件---------------------");
            String path = request.getSession().getServletContext().getRealPath("upload");
            for(int i = 0; i < name.size(); i++){
                if(null != name && !name.isEmpty()){
                    if(!name.get(i).isEmpty()){
                        //获得上传文件.gpj;
                        String filename = name.get(i).getOriginalFilename();
                        String suffix = filename.substring(filename.lastIndexOf("."),filename.length());
                        UUID uuid = UUID.randomUUID();
                        String newFileName = uuid+suffix;
                        File targetFile = new File(path,newFileName);
                        if(!targetFile.exists()){
                              targetFile.mkdirs();  
                           }
                        name.get(i).transferTo(targetFile);
                    }
                }
            }
            
            
            return "show";
        }
        //多个文件 input 中的name="xx",MultipartFile xx必须一致 name 相同
        @RequestMapping("uploads/name")
        public String uploadsName(HttpServletRequest request,@RequestParam  MultipartFile[] name,Model model) throws IllegalStateException, IOException {
            System.out.println("------------------开始上传文件---------------------");
            String path = request.getSession().getServletContext().getRealPath("upload");  
            //获得文件名字
            int len = name.length;
            if(len > 0 ){
                for(int i = 0 ; i < len; i++){
                    String filename = name[i].getOriginalFilename();
                    if(null != filename && filename.length() != 0){
                        //获得上传文件.gpj;
                        String suffix = filename.substring(filename.lastIndexOf("."),filename.length());
                        UUID uuid = UUID.randomUUID();
                        String newFileName = uuid+suffix;
                        File targetFile = new File(path,newFileName);
                        if(!targetFile.exists()){
                              targetFile.mkdirs();  
                           }
                        name[i].transferTo(targetFile); 
                        model.addAttribute("path", path+File.separator+newFileName);
                    }
                }
                
            }
            return "show";
        }
        
    //原生的上传文件
        @RequestMapping(value="/upload",method=RequestMethod.POST) 
        public String upload(HttpServletRequest req) throws Exception { 
            MultipartHttpServletRequest mreq = (MultipartHttpServletRequest)req; 
            MultipartFile file = mreq.getFile("file"); 
            String fileName = file.getOriginalFilename(); 
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
            FileOutputStream fos = new FileOutputStream(req.getSession().getServletContext().getRealPath("/")+ "upload/"+sdf.format(new Date())+fileName.substring(fileName.lastIndexOf('.'))); 
            fos.write(file.getBytes()); 
            fos.flush(); 
            fos.close(); 
            return "hello"; 
            }


相关文章
|
8月前
|
XML Java Maven
springboot-多环境配置文件
本文介绍了如何创建开发和生产环境的配置文件,并在IDEA和Maven中进行配置。开发环境中,通过设置profile为`dev`来指定配置文件;生产环境中,使用Maven命令参数`-Pprod`打包并指定配置文件。公共配置可放在`application.yml`中统一管理。日志配置需确保`logback-spring.xml`中的profile正确,以保证日志正常输出。
479 4
springboot-多环境配置文件
|
9月前
|
存储 前端开发 Java
Springboot静态资源映射及文件映射
在Spring Boot项目中,为了解决前端访问后端存储的图片问题,起初尝试通过静态资源映射实现,但发现这种方式仅能访问打包时已存在的文件。对于动态上传的图片(如头像),需采用资源映射配置,将特定路径映射到服务器上的文件夹,确保新上传的图片能即时访问。例如,通过`addResourceHandler(&quot;/img/**&quot;).addResourceLocations(&quot;file:E:\\myProject\\forum_server\\&quot;)`配置,使前端可通过URL直接访问图片。
538 0
Springboot静态资源映射及文件映射
|
8月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
665 1
SpringBoot获取项目文件的绝对路径和相对路径
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
1199 4
springboot + minio + kkfile实现文件预览
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
194 11
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
844 8
|
存储 前端开发 JavaScript
|
Java
SpringBoot获取文件将要上传的IP地址
SpringBoot获取文件将要上传的IP地址
144 0