# 图片上传 + 后台接入记录(2026-07-30) ## 上传接口正确调用方式(关键!) `https://server.websoft.top/api/oss/upload` 是 **multipart 文件上传**,必填项: - `Authorization: Bearer ` - `tenantId: 10626`(请求头,缺它报「传参错误」——这是之前一直失败的根因) - form 字段 `file=@图片` 其余 `module/bizType/path` 等字段**可选**,不传也能成功。返回 `data.path` / `data.url` 即访问地址。 > 探测过程踩的坑:OpenAPI(swagger) 文档是 springfox 自动生成的,不收录 `@RequestParam`,误导以为要 `application/octet-stream` 或各种 form 字段。实际是 multipart + tenantId 请求头。 ## 本次上传结果 | 图片 | OSS 地址 | 用途 | |------|----------|------| | 关于我们右侧图 | `https://oss.wsdns.cn/20260730/e31b250f922643b0ada4338897840d47.jpg` | 模板本地兜底 `public/images/template-07/about.jpg` 同源(后端无 aboutImage 字段,走本地兜底显示) | | 最新动态首图 | `https://oss.wsdns.cn/20260730/082146c2149b4175ad08e71534c12682.jpg` | 已写入 `cms-article` 10557 的 `image` 字段(PUT `/api/cms/cms-article`) | ## 后台写入 - 文章 10557「走近汇采聚云…」`image` 原值 `file.websoft.top/.../b798...png` 已 404,改为新 OSS 图。`PUT /api/cms/cms-article`(tenantId 头 + 完整 article JSON)。 - 关于我们图:后端 `cms-website/getSiteInfo` 是扁平结构,**无 `aboutImage` / `config` 子对象**(只有 `websiteLogo`、`qrCode` 等),故模板用本地兜底图 `public/images/template-{01,07}/about.jpg`。若需后台托管,需在站点配置加 `aboutImage` 字段并让前端读 `siteInfo.config.aboutImage`(Home.vue 已预留该优先级)。 ## 前端已确认渲染(dev server :3002) - 关于我们右侧:`/images/template-07/about.jpg`(生成图,非 Logo) - 最新动态首图:`https://oss.wsdns.cn/20260730/082146...jpg`(后端 article.image) - 关注我们二维码:`siteInfo.qrCode`(`https://oss.wsdns.cn/20260729/00d3fc...png`,读后台,无硬编码) ## 复用的上传脚本 `scripts/upload-to-oss.sh`:`ADMIN_TOKEN="eyJ..." bash scripts/upload-to-oss.sh`