--
遇到很多图片文件上传的问题,在网上找了很多demo,但都是不是很理想,也讲得很出清楚,原理什么的都很不好,自己写一个,希望可以帮助新手
图片上传
1:创建图片名字
NSString *imbName=@"pic.png";
2:文件管理器:
NSFileManager*fileManager = [NSFileManagerdefaultManager];
3:获取所有文件的数组
NSArray*directoryPaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
4:获取Documents目录,传递0代表是找在Documents目录下的文件
NSString*documentDirectory = [directoryPathsobjectAtIndex:0];
5:在已经获取的目录里边创建文件名字
NSString*filePath = [documentDirectorystringByAppendingPathComponent:fileName];
6:判断是否存在文件,如果不存在,重建一个哦
if ( ![fileManagerfileExistsAtPath:filePath]) {
[fileManagercreateFileAtPath:filePathcontents:nilattributes:nil];
}
7//把图片(self.setting.imagedata)放进这个文件夹里边
if([self.setting.imagedata writeToFile: filePath atomically:YES])
{
//加入完成后,开始上传
NSFileManager*fileManager = [NSFileManagerdefaultManager];//重新建立管理器
NSArray*directoryPaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);//获取根数组
NSString*documentDirectory = [directoryPathsobjectAtIndex:0];//获取根目录文件
NSArray* fileArray = [fileManager contentsOfDirectoryAtPath:documentDirectoryerror:nil];//将所有根目录文件转化为数组
//遍历根数组
for (NSString* fileName in fileArray) {
BOOL Flag =YES;
//把所有的文件路径获取到
NSString* fullPath = [documentDirectory stringByAppendingPathComponent:fileName];
if ([fileManager fileExistsAtPath:fullPath isDirectory:&flag]) {
//if(flag)是文件夹,否则为文件
if (!flag) {
//找到需要上传的文件
NSRangefoundObj=[fileNamerangeOfString:@"avatar"options:NSCaseInsensitiveSearch];
if (foundObj.length==0)
continue;
[selfHttpUpload:[selfUrlGen:[NSStringstringWithFormat:@"/editAvatar"]]file:fileName];
}
}
}
网友评论