MultipartFile多文件上传/通过文件夹解析所有文件

简介: MultipartFile多文件上传/通过文件夹解析所有文件


  • 通过request请求获取解析
<form>
    <div class="form-group col-lg-2" th:if="${session.permissions.hotelAdd}">
         <input id="fileUpload" accept="application/vnd.sealed-xls" type="file">
    </div>
<form>
//初始化文件上传
$('#fileUpload').fileinput({
    uploadUrl: '/project/getFlieListHotExecl',
    dropZoneEnabled: false,
    allowedFileTypes: ['xls', 'xlsx'],
    maxFileCount: 1,
    maxFileSize:10240,
    language: 'zh'
}).on("filebatchselected", function (event, files) {
    $(this).fileinput("upload");
}).on("fileuploaded", function (event, data) {
    $('#blogTable').bootstrapTable('refresh');
});
@RequestMapping("/getFlieListHotExecl")
@ResponseBody
public void fileUpload(HttpServletRequest request) {
   MultipartFile file = null;
   // 创建一个通用的多部分解析器
   CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
   // 判断 request 是否有文件上传,即多部分请求
   if (multipartResolver.isMultipart(request)) {
       // 转换成多部分request
       MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
       // 取得request中的所有文件名
       Iterator<String> iter = multiRequest.getFileNames();
       while (iter.hasNext()) {
            file = multiRequest.getFile(iter.next());
       }
   }
   //解析
   if (null!=file){
       // 创建输入流,读取流
       try {
           InputStream is = file.getInputStream();
           //处理流
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
}
  • 单文件上传
<form action="fileUpload" method="post" enctype="multipart/form-data">
   <p>选择文件: <input type="file" name="fileName"/></p>
   <p><input type="submit" value="提交"/></p>
</form>
@RequestMapping("/fileUpload")
@ResponseBody
public void fileUpload(@RequestParam("fileName") MultipartFile file){
    //解析
    if (null!=file){
        // 创建输入流,读取流
        try {
            InputStream is = file.getInputStream();
            //处理流
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  • 上传多文件
<form action="multifileUpload" method="post" enctype="multipart/form-data" >
       <p>选择文件1: <input type="file" name="fileName"/></p>
       <p>选择文件2: <input type="file" name="fileName"/></p>
       <p>选择文件3: <input type="file" name="fileName"/></p>
       <p><input type="submit" value="提交"/></p>
</form>
  • 多文件
@RequestMapping(value = "/batch/upload", method = RequestMethod.POST)
@ResponseBody
public void handleFileUpload(HttpServletRequest request) {
    MultipartHttpServletRequest params=((MultipartHttpServletRequest) request);
    List<MultipartFile> files = ((MultipartHttpServletRequest) request)
            .getFiles("file");
    String name=params.getParameter("name");
    System.out.println("name:"+name);
    String id=params.getParameter("id");
    System.out.println("id:"+id);
    MultipartFile file = null;
    BufferedOutputStream stream = null;
    for (int i = 0; i < files.size(); ++i) {
        file = files.get(i);
        //解析
    }
}
public Boolean upload(MultipartFile[] files) throws Exception {
    if (null != files && files.length > 0) {
        //用于判断文件个数
        final int length = files.length;
        for (MultipartFile file : files) {
            final String originalFilename = file.getOriginalFilename();
            assert originalFilename != null;
            //后缀,用于判断文件类型
            String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
       //获取输文件入流
       final InputStream inputStream = file.getInputStream();
      //添加逻辑操作...
        }
    }
    return true;
}
  • 文件夹上传
public Boolean uploadByDirectory(String path) throws Exception {
      File file = new File(path);
      File[] tempList = file.listFiles();  //遍历文件夹内文件
      for (int i = 0; i < Objects.requireNonNull(tempList).length; i++) {
          File excel = tempList[i];
          FileInputStream fileInputStream = null;            
          final String fileName = excel.getName(); //判断后缀是什么类型
          String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);//创建文件输入流
          fileInputStream = new FileInputStream(excel);            //执行操作....            
      }        
      return true;
  }


相关文章
|
19天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
1月前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
1月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
21 0
|
1月前
|
前端开发 UED
前端解析Excel文件
前端解析Excel文件
34 0
|
3月前
|
JavaScript API Windows
Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法实例解析
78 0
|
1天前
|
Linux Go 数据安全/隐私保护
Linux 中的文件属性解析
在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。
|
8天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
17 1
|
1月前
|
SQL Java 数据库连接
springboot解析txt文件顺便加到数据库中(nohup文件)
springboot解析txt文件顺便加到数据库中(nohup文件)
112 1
|
1月前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
1月前
|
存储 安全 Linux
C++文件格式深度解析:从底层结构到关键特性
C++文件格式深度解析:从底层结构到关键特性
251 3
C++文件格式深度解析:从底层结构到关键特性

推荐镜像

更多