一个基于 Flask 和 Plotly.js 的 MATLAB 数据文件(.mat)可视化工具,支持上传、解析、查看和导出 MAT 文件数据。
- 📤 文件上传 - 支持本地上传和远程加载(HTTP/HTTPS/SSH)
- 📊 数据可视化 - 自动识别数据类型,提供折线图、热力图、柱状图等多种视图
- 📋 数据表格 - 支持分页浏览和搜索
- 📥 数据导出 - 支持 CSV、Excel、TXT、NPY、MAT 等多种格式
- 🔒 安全可靠 - 完善的输入验证、XSS 防护、速率限制
- ⚡ 性能优化 - 懒加载、LRU 缓存、分块读取
pip install -r requirements.txtpython app.py打开浏览器访问:http://127.0.0.1:5000
核心依赖 (requirements.txt):
- Flask >= 2.3.0
- Werkzeug >= 2.3.0
- NumPy >= 1.24.0
- SciPy >= 1.10.0
- h5py >= 3.8.0
可选依赖 (optional-requirements.txt):
- paramiko >= 2.11.0 (SSH 远程文件加载)
复制 .env.example 为 .env 并修改配置:
cp .env.example .env主要配置项:
SECRET_KEY: 密钥(生产环境务必修改)HOST: 监听地址(默认 127.0.0.1)PORT: 监听端口(默认 5000)MAX_CONTENT_LENGTH_MB: 最大上传文件大小(默认 500MB)
- MATLAB v5/v6/v7 (.mat)
- MATLAB v7.3 (HDF5 格式)
- ✅ 文件名和变量名白名单验证
- ✅ 路径遍历防护
- ✅ XSS 攻击防护
- ✅ 文件上传大小限制
- ✅ 速率限制(防滥用)
- ✅ 上传目录隔离
- 上传文件: 拖拽 .mat 文件或点击选择文件
- 查看变量: 点击左侧变量列表查看数据
- 切换视图: 根据数据类型自动提供多种视图选项
- 导出数据: 点击导出按钮选择格式下载
pro/
├── app.py # 主应用入口
├── requirements.txt # Python 依赖
├── optional-requirements.txt # 可选依赖
├── .env.example # 环境变量模板
├── security.py # 安全模块
├── file_loader.py # 文件加载器
├── core/ # 核心模块
│ ├── config.py # 配置管理
│ ├── parser.py # MAT 文件解析
│ ├── cache.py # 缓存管理
│ └── exporter.py # 数据导出
├── services/ # 服务模块
│ ├── file_service.py # 文件服务
│ └── data_service.py # 数据服务
└── frontend/ # 前端资源
├── html/
│ └── index.html
└── js/
└── app.js
- 生产环境务必修改
SECRET_KEY - 关闭调试模式 (
FLASK_DEBUG=False) - 使用 Nginx 反向代理
- 配置 HTTPS
- 定期更新依赖
上传失败:
- 检查文件大小是否超过限制
- 确认文件为有效的 .mat 格式
SSH 连接失败:
- 安装可选依赖:
pip install -r optional-requirements.txt - 检查 SSH 地址格式:
ssh://user@host:port/path/to/file.mat
MIT License
欢迎提交 Issue 和 Pull Request!
版本: v2.0.0
最后更新: 2026-04-12