来自 UIImagePicker 的图像的 NSURL
NSURL of an image from UIImagePicker
我正在尝试将图像从我的 phone 上传到我的 Amazon S3
存储桶:
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!)
{
var uploadReq = AWSS3TransferManagerUploadRequest()
uploadReq.bucket = "bucketname";
uploadReq.key = "testimage.png"
uploadReq.body = image; //This line needs an NSURL
}
如何获取用户从 UIImagePickerController
中选择的图像的 NSURL?
首先你应该将图像保存到文档目录。然后 Post URL。
你可以这样做:
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
let data = UIImagePNGRepresentation(image) // get the data
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true) as! [String]
let path = paths[0]
let fileName = "testimage.png"
let filePath = path.stringByAppendingPathComponent(fileName) // get the file url to save
var error:NSError?
if !data.writeToFile(photoPath, options: .DataWritingAtomic, error: &error) {// save the data
logger.error("Error write file: \(error)")
}
upload.body = NSURL(string: filePath) // used url to post to server
}
虽然正杰的回答可能有效。我找到了一种更简单的方法:
let fileURL = NSURL(fileURLWithPath: NSTemporaryDirectory().stringByAppendingPathComponent("imagetoupload"))
let data = UIImagePNGRepresentation(image)
data.writeToURL(fileURL!, atomically: true)
uploadReq.body = fileURL
我正在尝试将图像从我的 phone 上传到我的 Amazon S3
存储桶:
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!)
{
var uploadReq = AWSS3TransferManagerUploadRequest()
uploadReq.bucket = "bucketname";
uploadReq.key = "testimage.png"
uploadReq.body = image; //This line needs an NSURL
}
如何获取用户从 UIImagePickerController
中选择的图像的 NSURL?
首先你应该将图像保存到文档目录。然后 Post URL。 你可以这样做:
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
let data = UIImagePNGRepresentation(image) // get the data
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true) as! [String]
let path = paths[0]
let fileName = "testimage.png"
let filePath = path.stringByAppendingPathComponent(fileName) // get the file url to save
var error:NSError?
if !data.writeToFile(photoPath, options: .DataWritingAtomic, error: &error) {// save the data
logger.error("Error write file: \(error)")
}
upload.body = NSURL(string: filePath) // used url to post to server
}
虽然正杰的回答可能有效。我找到了一种更简单的方法:
let fileURL = NSURL(fileURLWithPath: NSTemporaryDirectory().stringByAppendingPathComponent("imagetoupload"))
let data = UIImagePNGRepresentation(image)
data.writeToURL(fileURL!, atomically: true)
uploadReq.body = fileURL