java存储音频文件及校验与读取

音频存储为音频流

前端部分

  1. 前端html
    html代码
    注意:前端使用的是Angular.js框架

  2. 前端js

    2.1 文件上传切换
    在这里插入图片描述
    2.2 文件提交-service.js
    在这里插入图片描述
    2.3. 文件上传
    在这里插入图片描述

后端部分

  1. 文件接收-controller
    在这里插入图片描述

  2. 文件后缀判断-controller
    在这里插入图片描述

  3. 文件内容判断-controller
    在这里插入图片描述
    注意:
    1、上传文件为了安全考虑,需要验证文件内容,音频文件一般为“494433030000”,(部分音频文件头字节码并不符合,但均为纯数字),如下
    在这里插入图片描述
    2、需要上传路径的,需要对路径防穿越处理
    在这里插入图片描述

  4. 文件流的接收字段
    在这里插入图片描述

  5. Mybatis中类型使用
    在这里插入图片描述

  6. Mysql中类型使用
    在这里插入图片描述
    注意:此处voice字段采用的是mediumblob,可提供16M的数据存储,而mysql常规有四种类型,使用时需要考虑性能等情况,择优选择,如下:
    MySQL有四种BLOB类型:
    ·tinyblob:仅255个字符
    ·blob:最大限制到65K字节
    ·mediumblob:限制到16M字节
    ·longblob:可达4GB

  7. Mysql中存储结果展示
    在这里插入图片描述

音频流转换为文件

后端读取音频流-controller

  1. 获取音频流
    1.1 controller展示
    在这里插入图片描述
    1.2 Dao展示
    在这里插入图片描述
    1.3 mapper展示
    在这里插入图片描述
    在这里插入图片描述
    1.4 JavaBean展示
    在这里插入图片描述
  2. 创建音频文件
    2.1 路径生成
    在这里插入图片描述
    2.2 音频生成
    在这里插入图片描述
    2.3 结果展示
    在这里插入图片描述

版权声明:本文为weixin_44329964原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。