Upload Image from UIImageView using DropBox SDK for Iphone

梦想的初衷 提交于 2019-11-30 17:07:29

You would have to write the file to the file system first:

NSData *data = UIImagePNGRepresentation(imageView.image);
NSString *file = [NSTemporaryDirectory() stringByAppendingPathComponent:@"upload.png"];

[data writeToFile:file atomically:YES];
[DBRestClient uploadFile:@"upload.png" toPath:@"Dropbox/Path" fromPath:file];

Note that you could use .jpg too, which is faster, and more compressed, just change UIImagePNGRepresentation to UIImageJPEGRepresentation, and pass a compression value (0.8 - 0.9 is good)

For reading files from Documents Directory (and share documents with iTunes) use this:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,  YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:@"FILE_NAME" stringByAppendingString:@".EXTENSION"]];

And also set in your info.plist the key Application supports iTunes file sharing to YES

For read a file embedded in your project (no iTunes file sharing) and linked with a folder from your File System use this:

#define EXAMPLES_PATH @"/examplesPics/"

- (NSString *) relativePathForExampleImage: (NSString *) fileName {
    return [[EXAMPLES_PATH stringByAppendingString:self.folderName] stringByAppendingString:fileName];
}

- (NSString *) absolutePathForExampleImage: (NSString *) fileName {
    return [[[NSBundle mainBundle] bundlePath] stringByAppendingString:[self relativePathForExampleImage:fileName]];
}

and also add the examplesPics folder to the "Copy Bundle Resources" Build Phase.

If you don't have a linkded folder, just grouped in your project use this:

- (NSString *) absolutePathForExampleImage: (NSString *) fileName {
    return [[[NSBundle mainBundle] bundlePath] stringByAppendingString:fileName];
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!