Path: API › 文件管理

`POST /files`

上传文件到指定目录。与面板其他接口不同，本接口使用 `multipart/form-data` 格式。

## Request body

_Required._

- `action133.request_time` (string, required) — 认证时间戳（FormData 字段）
- `action133.request_token` (string, required) — 认证令牌（FormData 字段）
- `action133.action` (string, required) — 具体操作名称。
  - one of `"UploadFile"`
- `action133.path` (string, required) — 目标目录路径
- `action133.zunfile` (string, required) — 上传的文件（FormData 文件字段）

## Example request

```text
{
  "request_time": "string",
  "request_token": "string",
  "action": "UploadFile",
  "path": "string",
  "zunfile": "string"
}
```

## Code samples

### cURL（填写面板地址与签名）

```curl
curl --request POST \
  --url "https://your-panel.example.com:8888/files" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "request_time=<Unix时间戳>" \
  --data-urlencode "request_token=<按 API 概览生成的签名>" \
  --data-urlencode "action=UploadFile" \
  --data-urlencode "path=<path>" \
  --data-urlencode "zunfile=<zunfile>"
```

## Responses

### default

接口响应，业务状态见下方详细说明。

#### Example

```json
{
  "status": true,
  "msg": "上传成功!"
}
```

- `action133.response.default.status` (boolean, optional) — `true` 上传成功
- `action133.response.default.msg` (string, optional) — `上传成功!`


## UploadFile

上传文件到指定目录。与面板其他接口不同，本接口使用 `multipart/form-data` 格式。

- **路由**：`POST /files`
- **action**：`UploadFile`
- **Content-Type**：`multipart/form-data`（非 form-urlencoded）

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | `UploadFile`（FormData 字段） |
| path | 是 | String | 目标目录路径 |
| zunfile | 是 | File | 上传的文件（FormData 文件字段） |
| request_time | 是 | String | 认证时间戳（FormData 字段） |
| request_token | 是 | String | 认证令牌（FormData 字段） |

> 注意：认证参数 `request_time` 和 `request_token` 也要以 FormData 字段方式传递，不能放在 URL query 中。

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 上传成功 |
| msg | String | `上传成功!` |

## 示例

### Python

```python
import requests

url = 'http://192.168.168.213:8888/files'
data = {
    'action': 'UploadFile',
    'path': '/www/wwwroot/testapi.bt.local',
    'request_time': str(int(time.time())),
    'request_token': token,
}
files = {'zunfile': ('test.txt', 'Hello World', 'text/plain')}
r = requests.post(url, data=data, files=files)
```

### cURL

```bash
curl -F 'action=UploadFile' \
     -F 'path=/www/wwwroot/testapi.bt.local' \
     -F 'request_time=1700000000' \
     -F 'request_token=xxx' \
     -F 'zunfile=@local_file.txt' \
     http://192.168.168.213:8888/files
```

### 响应

```json
{"status": true, "msg": "上传成功!"}
```

