美文网首页
SpringBoot实现多个文件上专并保存到服务器

SpringBoot实现多个文件上专并保存到服务器

作者: 远程开发者 | 来源:发表于2021-07-29 11:55 被阅读0次

    添加依赖

    创建静态上传页面 添加上传文件控制器 添加上传文件控制器 注意多文件上传的细节,客户端要开户多文件选择支持,服务端要遍历上传后的文件数组 启动工程并打开上传页面 选择要上传的文件 确认后上传 上传成功后,返回文件路径集合字符串 通过返回的地址访问上传后的文 完成的控制器源码

    package cn.metrox.test;

    import org.springframework.web.bind.annotation.PostMapping;

    import org.springframework.web.bind.annotation.RestController;

    import org.springframework.web.multipart.MultipartFile;

    import javax.servlet.http.HttpServletRequest;

    import java.io.File;

    import java.text.SimpleDateFormat;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.List;

    import java.util.UUID;

    @RestController

    public class FileUploadController {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        @PostMapping("/uploads")

        public String upload(MultipartFile[] uploadFiles, HttpServletRequest req){

            String realPath = req.getSession().getServletContext().getRealPath("/uploadFile/");

            String format = sdf.format(new Date());

            File forlder = new File(realPath+format);

            if(!forlder.isDirectory()){

                forlder.mkdirs();

            }

            List<String> filePaths = new ArrayList<String>();

            for(MultipartFile uploadFile:uploadFiles) {

                String oldName = uploadFile.getOriginalFilename();

                String newName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf("."),oldName.length());

                try{

                    uploadFile.transferTo(new File(forlder,newName));

                    String filePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+"/uploadFile/"+ format+"/"+newName;

                    filePaths.add(filePath);

                }catch (Exception e){

                    e.printStackTrace();

                }

            }

            if(filePaths.stream().count() == uploadFiles.length){

                return filePaths.toString();

            }else{

                return "上传失败,有些文件没有上传成功";

            }

        }

    }

    相关文章

      网友评论

          本文标题:SpringBoot实现多个文件上专并保存到服务器

          本文链接:https://www.haomeiwen.com/subject/wavxvltx.html