typedefNS_ENUM(NSInteger, SPFileType) {
SPFileTypePhoto,
SPFileTypeVideo,
SPFileTypeDocument
};
@interfaceSPDocUploadModel :NSObject
// 方便操作(暂停取消)正在上传的文件
@property (nonatomic, strong) NSURLSessionDataTask *dataTask;
// 总大小
@property (nonatomic, assign) int64_t totalSize;
// 总片数
@property (nonatomic, assign) NSInteger totalCount;
// 已上传片数
@property (nonatomic, assign) NSInteger uploadedCount;
// 上传所需参数
@property (nonatomic, copy) NSString *upToken;
// 上传状态标识, 记录是上传中还是暂停
@property (nonatomic, assign) BOOL isRunning;
// 缓存文件路径
@property (nonatomic, copy) NSString *filePath;
// 用来保存文件名使用
@property(nonatomic,copy)NSString*lastPathComponent;
// 以下属性用于给上传列表界面赋值
@property (nonatomic, assign) SPFileType fileType;
@property (nonatomic, copy) NSString *title;
@property(nonatomic,copy)NSString*progressLableText;
@property (nonatomic, assign) CGFloat uploadPercent;
@property(nonatomic,copy)void(^progressBlock)(CGFloatuploadPersent,NSString*progressLableText);
// 接下来调用的url
@property (nonatomic, copy) NSString *requestUrl;
// 保存上传成功后调用保存接口的参数
@property (nonatomic, strong) NSMutableDictionary *parameters;
(void)setUploadedCount:(NSInteger)uploadedCount {
_uploadedCount= uploadedCount;
self.uploadPercent= (CGFloat)uploadedCount /self.totalCount;
self.progressLableText = [NSString stringWithFormat:@"%.2fMB/%.2fMB",self.totalSize * self.uploadPercent /1024.0/1024.0,self.totalSize/1024.0/1024.0];
if (self.progressBlock) {
self.progressBlock(self.uploadPercent,self.progressLableText);
}
[[SPUploadManager shareUploadManager] refreshCaches];
}
NSString*constkSuperUploadFile =@"kSuperUploadFile";
NSString*constkSuperFinishedUpload =@"kSuperFinishedUpload";
// 测试URL 需要自己配置
NSString *const kSuperUploadTestUrl = @"http://103.28.215.253:10309/icpdr/doubleRecord/jv/video/upload.api";
// 1M
NSIntegerconstkSuperUploadBlockSize =1*1024*1024;
// 通过路径获取文件大小
- (longlong)fileSizeAtPath:(NSURL*)mediaUrl {
NSFileManager *manager =[NSFileManager defaultManager];
if([managerfileExistsAtPath:mediaUrl.path]){
return [[manager attributesOfItemAtPath:mediaUrl.path error:nil] fileSize];
}else{
return0;
}
- (NSString*)writeToCacheUrl:(NSURL*)mediaUrl appendNameString:(NSString*)name {
NSString *path = [self pathByAppendNameString:name];
returnpath;
}