42 lines
1.5 KiB
Go
42 lines
1.5 KiB
Go
package listing
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
"net/http"
|
|
|
|
"hfb_sys/backend/pkg/response"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func (h *Handler) ImportExternalUpload(c *gin.Context) {
|
|
c.Request.Body = http.MaxBytesReader(c.Writer, c.Request.Body, maxExternalUploadBodyBytes)
|
|
raw, err := io.ReadAll(c.Request.Body)
|
|
if err != nil {
|
|
response.BadRequest(c, "上传内容过大或读取失败")
|
|
return
|
|
}
|
|
var req ExternalUploadRequest
|
|
if err := json.Unmarshal(raw, &req); err != nil {
|
|
response.BadRequest(c, "上传 JSON 格式不正确")
|
|
return
|
|
}
|
|
result, err := h.service.ImportExternalUpload(c.Request.Context(), req, ExternalUploadMeta{
|
|
IP: c.ClientIP(),
|
|
UserAgent: c.GetHeader("User-Agent"),
|
|
RawPayload: raw,
|
|
})
|
|
if err != nil {
|
|
writeListingError(c, err)
|
|
return
|
|
}
|
|
response.Created(c, result)
|
|
}
|
|
|
|
func (h *Handler) DefaultUploadScreenshot(c *gin.Context) {
|
|
c.Header("Content-Type", "image/svg+xml; charset=utf-8")
|
|
c.Header("Cache-Control", "public, max-age=86400")
|
|
c.String(http.StatusOK, `<svg xmlns="http://www.w3.org/2000/svg" width="960" height="540" viewBox="0 0 960 540"><rect width="960" height="540" fill="#f3f4f6"/><rect x="72" y="72" width="816" height="396" rx="24" fill="#ffffff" stroke="#d1d5db" stroke-width="4"/><text x="480" y="248" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#374151">账号资料默认图</text><text x="480" y="310" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#6b7280">开放接口上传,待后台补充审核</text></svg>`)
|
|
}
|