使用Alamofire上传多部分表单数据文件

时间:2015-07-31 16:40:16

标签: swift multipart alamofire

我查看了thisthat之类的问题,但仍然无效。 enter image description here

我还有一个问题,我应该从函数fileURL输入multipartFormData.appendBodyPart param的内容?

它应该是从PC成像的方式,还是必须将图像添加到Images.xcassets?我应该在这里发送什么?

2 个答案:

答案 0 :(得分:6)

您似乎有三个需要解决的问题。

  1. 使用.POST代替POST
  2. fileURL必须是指向文件系统上文件的有效NSURL。你不能只使用文件名。
  3. 您正在使用responseString序列化程序,但在闭包JSON中命名了第三个参数。然后,您将result放入s并尝试将其打印出来。 result参数甚至不存在于任何地方。相反,您应该print(JSON)
  4. 希望这有助于澄清一些事情。

答案 1 :(得分:1)

尝试使用.POST而不是POST

作为替代解决方案,上传编码文件并将其作为POST参数发送。

// `data` is NSData
let base64String = data!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)

let parameters = ["image_data": base64String] as [String: AnyObject]
Alamofire.request(.POST, "http://your-url.com", parameters: parameters)

这种方法的缺点是数据会因编码而变大%33。如果您遇到带宽问题,可能不是一个好的解决方案。