【发布时间】:2015-09-21 20:57:36
【问题描述】:
我正在尝试使用 Alamofire 将图像上传到服务器。当我使用以下内容时,一切都可以正常使用保存在包中的测试图像。
func uploadImage()
{
let fileURL = NSBundle.mainBundle().URLForResource("Uploadtest", withExtension: "jpg")
Alamofire.upload(.PUT, url + "/api/Image" + id, file: fileURL!).responseString {
_, _, result in
print("Success: \(result.isSuccess)")
print("Response String: \(result.value)")
}
}
但是,我希望从 UIImagePickerController 上传图像。 Alamofire 上传方法将文件 url 作为参数,而我从 UIImagePickerController 获取 UIImage 的实例。我是否应该将此图像本地保存到文档或类似文件中,然后获取该位置的 url 以传递给 Alamofire 上传方法?这是可能的还是我错过了另一种方式?
【问题讨论】:
-
在您的
UIImagePickerDelegate中,您需要使用可选的 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 返回给您的信息字典有一个键,它应该满足您的需求UIImagePickerControllerMediaURL -
感谢 JMFR 看起来不错,但由于某种原因 info 中没有任何值。我敢肯定那是我做错了!
-
我认为您可能是对的,最好的方法是保存本地副本。然后上传那个。 (我猜这是因为沙盒,我们不能只在照片应用程序中获取文件的 url。因为它们有自己的数据目录,与我们的应用程序数据分开。)
-
写下您自己问题的答案。我会给它一个 :thumbsup:
-
会做的,谢谢你的帮助。