前言

项目中很多导入导出Excel表格和Word的功能都用到了这个类,今天就来说说这个类都提供了哪些方法,都能做些什么?

MultipartFile类源码

在idea中打开项目,找到用到MultipartFile的地址,Ctrl+单击进入这个类的源码,按alt+7 打开这个类的结构,可以看到这个类中有哪些方法。
文件上传之MultipartFile类_编程和语言

  • getName():获取表单中文件组件的名字
  • getOriginalFilename():得到原来的文件名在客户机的文件系统名称(即获取文件的原名)。
  • getContextType():返回文件的内容类型,如excel,image/jpeg等。
  • isEmpty():判断是否为空,或者上传的文件是否有内容
  • getSize():返回文件大小,以字节为单位
  • getBytes():将文件内容转化成一个byte[]返回
  • getInputStream():返回InputStream读取文件的内容。
  • transferTo(File):将MultipartFile转化为File,保存到一个目标文件中。
  • transferTo(Path) :转化为path

MultipartFile的使用

1、引入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

2、导入Word文档demo

 @ApiOperation(value = "导入world")
    @PostMapping(value = "/importWorld")
    public FrontResult importWorld(@RequestParam("file")MultipartFile file, HttpServletRequest request, HttpServletResponse response){
        //获取文件名
        String fileName=file.getOriginalFilename();
        //获取文件后缀
        String prefix=fileName.substring(fileName.lastIndexOf("."));
        if(!".doc".equals(prefix.toLowerCase())&& !".docx".equals(prefix.toLowerCase())){
            return FrontResult.build(ResultCodeEnum.FAIL.code,"文件类型必须为.doc或者.docx类型",null);
        }
        String doc1=null;
        File wordFile =null;
        try {
            InputStream path=file.getInputStream();

            if(".docx".equals(prefix.toLowerCase())){
                XWPFDocument xdoc=new XWPFDocument(path);
                XWPFWordExtractor extractor=new XWPFWordExtractor(xdoc);
                doc1=extractor.getText();
            }else if(".doc".equals(prefix.toLowerCase())){

                HWPFDocument doc=new HWPFDocument(path);
                String doc2=doc.getDocumentText();
                StringBuilder doc3=doc.getText();
                Range rang=doc.getRange();
                doc1=rang.text();
            }
        }catch (IOException e){
            log.error(""+e);
        }
    return FrontResult.build(ResultCodeEnum.SUCCESS.code,"导出成功",doc1);
    }

3、在swagger上可以看到Word文档中的内容被输出出来了

文件上传之MultipartFile类_Spring Cloud_02