文件上传

1. 简介

本组件提供三种文件服务:

  1. 服务器本地磁盘存储: local
  2. 七牛云服务器存储: qiniu
  3. hadoop大数据文件存储: hdfs

需要使用哪种文件服务,只需要在项目中依赖相应的web-api即可。

2. 基础环境

  1. java8+
  2. 开发框架 springboot2.0.4,spring5,jersey2,swagger2,hibernate-validate4,jpa,hibernate5

3. 如何使用

3.1. 添加依赖

在项目 ***-web-api中添加依赖:

local:

<dependency>
    <groupId>com.jpxx.common.file</groupId>
    <artifactId>file-web-local</artifactId>
</dependency>

qiniu:

<dependency>
    <groupId>com.jpxx.common.file</groupId>
    <artifactId>file-web-qiniu</artifactId>
</dependency>

hdfs:

<dependency>
    <groupId>com.jpxx.common.file</groupId>
    <artifactId>file-web-hdfs</artifactId>
</dependency>

3.2. 服务注册

在项目的***ResouceConfig注册 FileApi.class (com.jpxx.file.web.api.FileApi.class) 即可。

4. 添加配置

在application.yml中添加以下配置(根据使用服务类型,添加)。

file: 
  upload:
    types: jpg,jpeg,png # 文件上传类型限制
    maxSize: 102400 #文件上传大小限制  单位: KB
  local: # 本地文件服务配置
    host: http://localhost:23700/api/file/files  # 本地文件访问路径
    path: /Users/Steven/Desktop/file # 本地上传文件存放地址
  qiniu: # 七牛文件服务配置
    host: http://img.mrshare.cn  # 七牛文件访问路径
    key: hYI5i25STq8lpV3LdWLKUS625DdpdoMhpInJrBvR # 七牛appkey
    secret: Fzr3BHhK9rm7IAvwg8bNL2_jRB_2tG04YTU_hHvG # 七牛appsecret
    bucket: wxbox # 七牛空间名称
    zone: huadong # huadong: 华东  huabei 华北 huanan:华南 beimei 北美  xinjiapo 东南亚(新加坡)
  hdfs: # hadoop文件配置
    ns: 172.16.28.95:8020,172.16.28.81:8020 # hdfs namenote路径,集群用英文逗号隔开
    host: http://172.16.28.81:50070/webhdfs/v1/{filename}?op=OPEN # hdfs 下载路径

4.1. 关于文件类型

       // images
        mFileTypes.put("FFD8FFE0", "jpg");
        mFileTypes.put("89504E47", "png");
        mFileTypes.put("47494638", "gif");
        mFileTypes.put("49492A00", "tif");
        mFileTypes.put("424D", "bmp");

        //PS和CAD
        mFileTypes.put("38425053", "psd");
        mFileTypes.put("41433130", "dwg"); // CAD
        mFileTypes.put("252150532D41646F6265", "ps");

        //办公文档类
        mFileTypes.put("D0CF11E0", "doc"); //ppt、doc、xls
        mFileTypes.put("504B0304", "docx");//pptx、docx、xlsx

        /**注意由于文本文档录入内容过多,则读取文件头时较为多变-START**/
        mFileTypes.put("0D0A0D0A", "txt");//txt
        mFileTypes.put("0D0A2D2D", "txt");//txt
        mFileTypes.put("0D0AB4B4", "txt");//txt
        mFileTypes.put("B4B4BDA8", "txt");//文件头部为汉字
        mFileTypes.put("73646673", "txt");//txt,文件头部为英文字母
        mFileTypes.put("32323232", "txt");//txt,文件头部内容为数字
        mFileTypes.put("0D0A09B4", "txt");//txt,文件头部内容为数字
        mFileTypes.put("3132330D", "txt");//txt,文件头部内容为数字
        /**注意由于文本文档录入内容过多,则读取文件头时较为多变-END**/


        mFileTypes.put("7B5C727466", "rtf"); // 日记本

        mFileTypes.put("255044462D312E", "pdf");

        //视频或音频类
        mFileTypes.put("3026B275", "wma");
        mFileTypes.put("57415645", "wav");
        mFileTypes.put("41564920", "avi");
        mFileTypes.put("4D546864", "mid");
        mFileTypes.put("2E524D46", "rm");
        mFileTypes.put("000001BA", "mpg");
        mFileTypes.put("000001B3", "mpg");
        mFileTypes.put("6D6F6F76", "mov");
        mFileTypes.put("3026B2758E66CF11", "asf");

        //压缩包
        mFileTypes.put("52617221", "rar");
        mFileTypes.put("1F8B08", "gz");

        //程序文件
        mFileTypes.put("3C3F786D6C", "xml");
        mFileTypes.put("68746D6C3E", "html");
        mFileTypes.put("7061636B", "java");
        mFileTypes.put("3C254020", "jsp");
        mFileTypes.put("4D5A9000", "exe");


        mFileTypes.put("44656C69766572792D646174653A", "eml"); // 邮件
        mFileTypes.put("5374616E64617264204A", "mdb");//Access数据库文件

        mFileTypes.put("46726F6D", "mht");
        mFileTypes.put("4D494D45", "mhtml");

源码地址:http://sources.jpsycn.com/dev-plat/java-server/com/file.git

Copyright © jpsycn.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2019-09-10 14:25:46

results matching ""

    No results matching ""