# WeSmart 文件管理系统 v0.9.3

## 版本信息
- **版本号**: v0.9.3
- **发布时间**: 2026年3月4日
- **更新类型**: 功能增强

## 新增功能

### 📌 推送文件来源显示
**功能描述**: 文件推送到公共/临时文件夹后，显示推送人信息，方便来源确认和管理

**实现方式**:
1. 推送文件时，前端将 `source`（当前用户名）发送到后端
2. 后端创建并行的 `.meta.json` 文件存储来源信息
3. 获取文件列表时，读取 metadata 文件并返回 source 字段
4. 前端在文件元数据中显示来源信息（格式：`大小 · 日期 · 👤 来源人`）

**技术细节**:
- Metadata 文件格式: `{ "source": "用户名", "pushedAt": "ISO时间", "originalName": "原始文件名" }`
- Metadata 文件与目标文件同名，后缀为 `.meta.json`
- 示例: `document.pdf` 的 metadata 文件为 `document.pdf.meta.json`

## 文件变更

| 文件 | 变更类型 | 说明 |
|------|----------|------|
| `/files/index.html` | 修改 | 推送请求添加 source 参数；文件列表显示来源信息 |
| `/files/login.html` | 版本号 | v0.9.2 → v0.9.3 |
| `file-server.js` | 修改 | /api/push-file 接收并保存 source；/api/wesmart-files 返回 source |

## API 变更

### POST /api/push-file
**请求体新增字段**:
```json
{
  "filename": "xxx.pdf",
  "fromFolder": "my",
  "toFolder": "common",
  "userFolder": "xiezhongxiang",
  "source": "谢忠祥"
}
```

### GET /api/wesmart-files/:folder
**响应新增字段**:
```json
{
  "files": [
    {
      "name": "xxx.pdf",
      "filename": "xxx.pdf",
      "size": 1024,
      "date": "2026-03-04",
      "url": "/files/common/xxx.pdf",
      "source": "谢忠祥"
    }
  ]
}
```

## 部署位置

```
/var/www/html/
├── files/                    # 文件管理系统 v0.9.3
│   ├── index.html
│   └── login.html
├── erp-backend/             # API服务
│   └── file-server.js       # 已更新
```

## 访问地址

- 文件管理系统: http://118.126.91.196/files/

## 测试验证

1. 登录文件管理系统
2. 上传一个文件到"我的文件"
3. 点击"推送"按钮，推送到公共文件夹
4. 切换到"公共文件夹"标签
5. 查看推送的文件，元信息应显示：`大小 · 日期 · 👤 推送人姓名`

---
*备份路径: /root/.openclaw/workspace/versions/v0.9.3/*
