使用Swift Vapor 3.0上传文件

问题描述 投票:3回答:1

我正在尝试创建一个简单的Steam服务,这样我就可以通过api上传视频文件(一次一个)。

从我的应用程序我使用Alamofire上传视频文件:

func uploadVideo(video: URL) {
    Alamofire.upload(videoFileURL, to: "http://localhost:8080/upload").responseString { response in
      debugPrint(response)
    }
}

蒸汽控制器方法是这样的(这是我不知道如何做到的地方):

func upload(_ req: Request) throws -> String {

  let data = try req.content.decode(Data.self).map(to: Data.self) { video in
    try Data(video).write(to: URL(fileURLWithPath: "/Users/eivindml/Desktop/video.mp4"))
    return Data(video)
  }

  return "Video uploaded";
}

如何从请求中获取视频文件并以正确的格式将其写入磁盘?

正确调用方法upload()等,因为它只有最后一个return语句才有效。

swift alamofire vapor
1个回答
3
投票

查看您的功能,您似乎无法正确处理未来的响应或提取数据。

func upload(_ req: Request) throws -> Future<String> {
    return try req.content.decode(File.self).map(to: String.self) { (file) in
        try file.data.write(to: URL(fileURLWithPath: "/Users/eivindml/Desktop/\(file.filename)"))
        return "File uploaded"
    }
}

看看这是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.