iOS实现图片、文件的上传

--

遇到很多图片文件上传的问题,在网上找了很多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];


}

}

}

你可能感兴趣的:(iOS实现图片、文件的上传)