我正在尝试使用带有[String:Any]参数的Alamofire
发送多部分图像数据,我只能发布[String:String]
参数
对于[String:String]
的行为就像https://stackoverflow.com/a/40440371/4466607
但是现在我必须像这样发布:
[PayLoad],我必须使用image
键发送图像,该键已经在执行中了。
问题:
如何在Swift中发布字典类型为[String:Any]
的图像
请帮助
答案 0 :(得分:0)
如果您的值为“任意类型”,请检查是否可能对您有所帮助。
for (key, value) in params {
let paramsData:Data = NSKeyedArchiver.archivedData(withRootObject: value)
formData.append(paramsData, withName: key)
}
答案 1 :(得分:0)
粗略的解决方案:
如果您坚持将Image数据放入字典中,则可以将图像数据转换为Base64代码,然后将Base64字符串放入字典中。您将向服务器提交一个大型JSON。我认为这不是一个好的解决方案。
更好的解决方案:
另一个WebApi提交图像数据,该API将返回上传的图像URL,例如https://www.example.com/image1234.jpg
,或者仅返回图像ID,例如“ 1234”,该ID最近可以嵌入到URL中。最后,您使用图像URL或ID(例如{"image":"https://www.example.com/image1234.jpg"}
或{"image":1234}
)提交JSON数据。