思路:
#1. 如何获取图片?
#2. 如何获取视频?
#3. 如何把图片存到缓存路径中?
#4. 如何把视频存到缓存路径中?
#5. 如何上传?
接下来, 我们按照上面的思路一步一步实现
首先我们新建一个类, 用来储存每一个要上传的文件uploadModel.h
1 2 3 4 5 6 7 |
|
#1. 如何获取图片?
从相册选择 或者 拍照,
这部分可以用UIImagePickerController来实现
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
#2. 如果获取视频?
从相册选择 或者 拍摄
这部分也可以用UIImagePickerController来实现
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
#3, 关于缓存, 如何把照片存入缓存目录?
这部分我们先考虑缓存目录, 一般存在Document 或者 Temp里面
我们给图片和视频各创建一个缓存目录:
1 2 |
|
把UIImage存入缓存的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
4. 如何把视频存入缓存?
把视频存入缓存的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
从缓存获取图片的方法:
1 2 3 4 5 6 7 8 |
|
上传图片和视频的时候我们一般会利用当前时间给文件命名, 方法如下
1 2 3 4 5 6 7 8 9 10 11 12 |
|
有时候需要获取视频的第一帧作为显示, 方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
5. 如何上传?
下面就是上传方法:
我把服务器地址xx掉了, 大家可以改为自己的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
这里有事先创建两个可变数组uploadArray, uploadedArray, 一个存放准要上传的内容, 一个存放上传完的内容
在准备上传后做什么操作, 可以检查两个数组的数量是否相等
最后是UIImagePickerController的协议方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
|