由于之前一直在忙项目,很久没有写过一篇像样的文章了,现在手上的项目基本是完成了,正好工作时间偷个懒写两篇文章。
将相机或相册图片上传到服务器
先看看最常见的图片上传,也可以选择跳过,后面有直接的封装方法
在实际开发中,图片上传是很常见的功能,比如和朋友圈一样发布一条动态要添加几张图片,或者上传用户头像什么的,这里就介绍如何通过第三方库Alamofire进行图片上传(这里使用的是Swift,下文更新了Swift3、Alamofire4.5.0的代码版本,OC可以用AFNetworking)。
当我们上传图片通常还需要带参数,Alamofire不像AF一样具有封装好的带参数上传图片的方法,但是可以通过其他方法拼接参数,代码中会有相应注释。
如下图,我已经写好了调用相机和相册的界面,如果不会使用相机相册,请看我之前写过的一篇文章:http://www.jianshu.com/p/ab98f2fe2734
我分别给取消按钮,拍照按钮,相册按钮设置了tag值,对应的点击方法如下(changeView是上图所示的灰色透明界面以及灰色界面上层界面):
func buttonClickedAction(sender: UIButton) {
switch sender.tag {
case 204:
//取消点击
changeView.removeFromSuperview()
case 205:
//拍照点击
changeView.removeFromSuperview()
if UIImagePickerController.isSourceTypeAvailable(.Camera) {
let picker = UIImagePickerController()
picker.sourceType = .Camera
picker.delegate = self
picker.allowsEditing = true
self.presentViewController(picker, animated: true, completion: nil)
}
else
{
self.noticeOnlyText("无法使用相机", autoClear: true, autoClearTime: 1)
}
case 206:
//相册点击
//调用相册功能,打开相册
changeView.removeFromSuperview()
let picker = UIImagePickerController()
picker.sourceType = .PhotoLibrary
picker.delegate = self
picker.allowsEditing = true
self.presentViewController(picker, animated: true, completion: nil)
default:
break
}
}
做了上述点击事件后,点击相机拍照后或者相册进行选择后就可得到照片选择器