如何使用swift将动态生成的Pdf文件上传到api

时间:2016-08-06 07:26:47

标签: file-upload swift2 xcode7

我正在做一个从用户那里获取输入并生成PDF文件的应用程序。我试图将生成的pdf文件上传到api.但是,我没有得到如何做到这一点,我完全是新手swift。任何人请举例说明如何将文件上传到api 提前致谢

1 个答案:

答案 0 :(得分:0)

首先,如果您不想迷失在编写网络请求的特性中,我建议您考虑使用Alamofire。如果你自己做,它会变得非常毛茸茸(请参阅https://stackoverflow.com/a/26163136/1271826,例如如何手动构建multipart/formdata请求。)

其次,就应该如何形成该请求而言,它完全取决于您如何设计API。但最简单的文件上传是支持multipart/formdata请求(例如在PHP中,使用$_FILES机制)。见http://php.net/manual/en/features.file-upload.php。或者参见此处的示例,不仅可以上传图像文件(您可以轻松修改以接受PDF),还可以构建JSON响应:https://stackoverflow.com/a/19743872/1271826

无论如何,如果您的服务器旨在处理multipart/formdata个请求,您可以使用Alamofire创建请求并解析响应,如README文件的Uploading MultipartFormData部分所示:< / p>

Alamofire.upload(
    .POST,
    "https://httpbin.org/post",
    multipartFormData: { multipartFormData in
        multipartFormData.appendBodyPart(fileURL: unicornImageURL, name: "unicorn")
        multipartFormData.appendBodyPart(fileURL: rainbowImageURL, name: "rainbow")
    },
    encodingCompletion: { encodingResult in
        switch encodingResult {
        case .Success(let upload, _, _):
            upload.responseJSON { response in
                debugPrint(response)
            }
        case .Failure(let encodingError):
            print(encodingError)
        }
    }
)