【发布时间】:2018-08-22 21:26:53
【问题描述】:
我只想有一个控制器操作,它与直接通过Public/ 文件夹访问图像基本相同。不同之处在于路线可以是您想要的任何路线,并且返回的图像将是在控制器函数内部确定的图像。但是如何创建正确的响应呢?
我的方法是这样的:
import Vapor
final class ImageController {
func read(_ req: Request) throws -> Future<Data> {
let directory = DirectoryConfig.detect()
let promise = req.eventLoop.newPromise(Data.self)
req.eventLoop.execute {
do {
let data = try Data(contentsOf: URL(fileURLWithPath: directory.workDir)
.appendingPathComponent("Public", isDirectory: true)
.appendingPathComponent("image.png"))
promise.succeed(result: data)
} catch {
promise.fail(error: error)
}
}
return promise.futureResult
// try req.content.encode(data, as: .png)
}
}
但在我看来,我过于复杂了,是吗?
【问题讨论】: