【发布时间】:2022-01-12 22:20:21
【问题描述】:
我正在尝试将照片发布到 steam 4 服务器。 我将团队名称作为字符串发送,将图像作为数据发送。
struct SendTeam: Content {
var name: String
var img: Data
}
我想在验证照片大小不超过 1MB 后上传照片,并且 mimetype 是 (jpg, jpeg, png) 之类的图像类型,然后将该图像调整为 300px*300px,最后将其保存到 @ 987654324@目录。
我不知道该怎么做。
这是我的代码。
func create(req: Request) async throws -> SendTeam {
let team = try req.content.decode(SendTeam.self)
let path = req.application.directory.publicDirectory + "originals/" + team.name + "-\(UUID())"
try await req.fileio.writeFile(.init(data: team.img), at: path)
if team.name.count < 4 || team.name.count > 20 {
throw Abort(.badRequest, reason: "wrong name")
}
return team
}
代码也应该在 ubuntu 服务器 VPS 云实例上运行。
【问题讨论】:
-
您似乎没有尝试对图像进行任何检查。如何做到这一点可能超出了 SO 的范围
-
感谢您在不和谐服务器中的帮助,我能够做到这一点..然后我会添加一个答案。这些链接对我有帮助:docs.vapor.codes/4.0/files 和 theswiftdev.com/file-upload-using-vapor-4