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"; 
            }


相关文章
|
21天前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
62 1
SpringBoot获取项目文件的绝对路径和相对路径
|
15天前
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
44 11
|
1月前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
springboot + minio + kkfile实现文件预览
|
21天前
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
64 8
|
21天前
|
存储 前端开发 JavaScript
|
21天前
|
存储 Java API
|
1月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
22天前
|
Java
SpringBoot获取文件将要上传的IP地址
SpringBoot获取文件将要上传的IP地址
31 0
|
1月前
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
69 2
|
29天前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
26 0
下一篇
无影云桌面