如何使用Alamofire.upload函数上传带有一些参数的图片或wav文件

时间:2015-03-24 03:34:43

标签: swift post alamofire

我想将一些文件上传到服务器,但需要一个令牌才能将文件一起发布。我登录时获得了令牌,所以如何发布到服务器?我可以写这样的代码吗?

var par=[
           "token":"xxxxxxxxxx",
           "file":"filename.file"
]
Alamofire.upload(.POST, "http://www.xxxxx.xxx", parameters: par)

1 个答案:

答案 0 :(得分:0)

根据您的服务器实施情况,当前版本的Alamofire很可能不支持此功能。

多部分表格数据

您的服务器很可能希望数据被multipart/form-data编码。目前,Alamofire不支持多部分表单数据。您需要根据RFC-2388RFC-2045

自行对数据进行编码

如果最终出现这种情况,您可以实现自己的规范版本,也可以使用AFNetworking。如果是这种情况,我会鼓励你现在使用AFNetworking。这是一个thread(由@rainypixels提供),如果您决定自己真的要自己实现,可以帮助您入门。

  

您需要小心使用此选项,因为它是内存中的解决方案。不要试图以这种方式上传视频或大量图像,或者非常快速地将应用程序上传到内存中。

文件上传

如果服务器不期望multipart/form-data编码,那么您可以使用Alamofire上传方法。

public func upload(URLRequest: URLRequestConvertible, file: NSURL) -> Request

您可以创建NSURLRequest并附加作为参数的令牌,然后将fileURL关闭传递给Alamofire进行上传。

总之,我非常确定第一种方法是您的服务器所需要的。无论哪种方式,希望这有助于您朝着正确的方向前进。