Загрузка файлов с использованием Swift Vapor 3.0 - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь создать простой сервис 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.

1 Ответ

0 голосов
/ 13 мая 2018

Глядя на вашу функцию, вы обнаруживаете, что вы неправильно обрабатываете свой будущий ответ или извлекаете данные.

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"
    }
}

Посмотрите, поможет ли это.

...