CSFileDownUpModel.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //
  2. // CSFileDownUpModel.h
  3. // zhuxun
  4. //
  5. // Created by winsoft on 17/6/22.
  6. //
  7. //
  8. #warning 文件夹下载只需数据库文件表现fid和id和serverpath, 下载不需要文件夹, 文件夹ui表现形式由数据库体现.
  9. #import <Foundation/Foundation.h>
  10. #import "CSFileModel.h"
  11. typedef enum {
  12. DownUpModelDown = 0,
  13. DownUpModelUp = 1
  14. }DownUpModel;
  15. typedef enum {
  16. // FileSourcePhotoAlbum, //相册
  17. FileSourceFileLocal,//一般存储路径,为我的文件文件夹 --> fileType
  18. FileSourceCSCloud //云盘文件夹
  19. }FileSource;
  20. typedef enum {
  21. FileTypeImage = 2,//如果fileSource为local,则需要此参数,full path不同.
  22. FileTypeOther = 3,//
  23. }FileType;
  24. typedef enum {
  25. DownUpStatusWait = 1,//默认为排队等待.
  26. DownUpStatusDoing = 2,
  27. DownUpStatusPause = 3,//Pause->恢复doing时判断是否有其他进行,是则=wait.
  28. DownUpStatusSuccess = 4,
  29. DownUpStatusFailure = 5,
  30. DownUpStatusDelete = 6//任务删除=数据库删除
  31. }DownUpStatus;
  32. /**
  33. * 文件上传下载数据库模型, FMDB独立管理.
  34. */
  35. @interface CSFileDownUpModel : NSObject
  36. //命名待修正,取消db字段,新增uuid的目的:可能多个model共享同一个task下的model.
  37. typedef void (^DownloadProgressUIBlock)(NSInteger receivedSize, NSInteger expectedSize, CGFloat progress,NSString *router,CSFileDownUpModel *fileDownUpModel,NSString *uuid);
  38. typedef void (^DownloadSuccessUIBlock)(NSInteger receivedSize,NSString *localRouter,CSFileDownUpModel *fileDownUpModel,NSString *uuid);
  39. typedef void (^DownloadFailedUIBlock)(NSString* errMessage,CSFileDownUpModel *fileDownUpModel,NSString *uuid);
  40. typedef void (^CSUploadProgressUIBlock)(double progress,NSInteger sendedSize, CSFileDownUpModel *fileDownUpModel,NSString *uuid);
  41. typedef void (^CSUploadSuccessUIBlock)(NSString* url,long long fileSize,CSFileDownUpModel *fileDownUpModel,NSString *uuid);
  42. typedef void (^CSUploadFailedUIBlock)(NSString* errMessage,CSFileDownUpModel *fileDownUpModel,NSString *uuid);
  43. @property (nonatomic , copy) NSString *sid;
  44. @property (nonatomic , copy) NSString *pid;
  45. @property (nonatomic , copy) NSString *delflag;
  46. @property (nonatomic , copy) NSString *ext;
  47. @property (nonatomic , assign) NSInteger type;
  48. @property (nonatomic , assign) BOOL isdir;
  49. @property (nonatomic , copy) NSString *md5;
  50. @property (nonatomic , copy) NSString *name;
  51. @property (nonatomic , assign) NSInteger size;
  52. @property (nonatomic , copy) NSString *user_id;
  53. @property (nonatomic , copy) NSString *serverFullPath;
  54. @property (nonatomic , copy) NSString *path;//点击文件夹下载时相对当前文件夹的位置
  55. /**
  56. * 上传还是下载
  57. */
  58. @property (nonatomic , assign) DownUpModel downUpType;
  59. /**
  60. * 下载地址(是否需要存储?每次上传下载的时候都要重新请求获取地址.)
  61. */
  62. //@property (nonatomic , copy) NSString *downLoadUrl;
  63. //
  64. ///**
  65. // * 上传地址
  66. // */
  67. //@property (nonatomic , copy) NSString *upLoadUrl;
  68. /**
  69. * 进行中还是下载
  70. */
  71. @property (nonatomic , assign) DownUpStatus downUpStatus;
  72. @property (nonatomic , assign) FileSource fileSouce;
  73. @property (nonatomic , assign) FileType fileType;
  74. /**
  75. * 文件目录层->localRootPath
  76. */
  77. @property (nonatomic , assign) NSInteger file_category;//服务端的full_server_path 有几个path就有多少count-1.如果/A/B/a.xxx
  78. /**
  79. * 操作时间
  80. */
  81. @property (nonatomic , assign) NSInteger downUpTimeStamp;
  82. /**
  83. * 唯一标识
  84. */
  85. @property (nonatomic , copy) NSString *downUpUUID;//由时间戳和md5生成.
  86. /**
  87. * 上传或者下载进度,bit
  88. */
  89. @property (nonatomic , assign) NSInteger downUpSize;
  90. /**
  91. * 本地路径,如果有的话
  92. */
  93. @property (nonatomic , copy) NSString *localRootPath;//重要参数,ui展示路径使用.
  94. //顺序:获取localpath = nil的,找到isdir的文件夹后,点击后查询路径是上一个文件夹的,如此递归...
  95. /**
  96. * 队列专用,不存储
  97. */
  98. @property (nonatomic , strong) CSFileDownUpModel *lastFileDownUpModel;
  99. @property (nonatomic , strong) CSFileDownUpModel *nextFileDownUpModel;
  100. /**
  101. * 当为文件夹时,所有的子文件模型.,数据库查询时赋值返回. 不存储.
  102. */
  103. @property (nonatomic , strong) NSArray *subFileDownUpModels;
  104. /**
  105. * model 下的回调.针对文件夹下载的优化.不存储.
  106. */
  107. @property (nonatomic, strong)DownloadProgressUIBlock downloadProgressBlock;
  108. @property (nonatomic, strong)DownloadSuccessUIBlock downloadSuccessBlock;
  109. @property (nonatomic, strong)DownloadFailedUIBlock downloadFailedBlock;
  110. @property (nonatomic, strong)CSUploadSuccessUIBlock uploadSuccessBlock;
  111. @property (nonatomic, strong)CSUploadFailedUIBlock uploadFailedBlock;
  112. @property (nonatomic, strong)CSUploadProgressUIBlock uploadProgressBlock;
  113. //主要还是下载.
  114. + (CSFileDownUpModel *)csfileDownupModelWithfileModel:(CSFileModel *)fileModel downUpType:(DownUpModel)downupType downUpStatus:(DownUpStatus)downUpStatus fileSource:(FileSource)fileSource fileType:(FileType)fileType localRootPath:(NSString *)localRootPath file_category:(NSInteger)file_category downUpTimeStamp:(NSDate *)downUpTimeStamp downUpUUID:(NSString*)downUpUUID downUpSize:(NSInteger)downUpSize;
  115. //主要还是上传(上传时会选择云盘路径)
  116. + (CSFileDownUpModel *)csfileDownupModelWithPid:(NSString *)pid Ext:(NSString *)ext type:(NSInteger)type md5:(NSString *)md5 name:(NSString *)name serverFullPath:(NSString *)serverFullPath path:(NSString *)path size:(NSInteger)size user_id:(NSString *)user_id downUpType:(DownUpModel)downupType downUpStatus:(DownUpStatus)downUpStatus fileSource:(FileSource)fileSource fileType:(FileType)fileType localRootPath:(NSString *)localRootPath file_category:(NSInteger)file_category downUpTimeStamp:(NSDate *)downUpTimeStamp downUpUUID:(NSString*)downUpUUID downUpSize:(NSInteger)downUpSize;
  117. //包一层上传下载请求地址..
  118. @end