[英]Upload Image from UIImageView using DropBox SDK for Iphone
我是iOS开发的初学者,刚开始使用iphone的DropBox SDK,我目前正在使用MacOSX 10.6版本,上面装有Xcode 3.2.5(模拟器为4.2)。 使用UIImagePickerController,我可以在UIImageView上显示选定的图像。 现在,如果我想使用DropBox SDK上传该特定图像,则必须知道其在我的应用程序中的路径,因为应用了以下代码
- (void)uploadFile:(NSString*)filename toPath:(NSString*)path fromPath:(NSString *)sourcePath
此方法在DBRestClient.h中定义,该文件是DropBox SDK for iOS的库文件。 但是从上述方法声明开始,需要确定UIImageView中存在的图像的“ fromPath”,以将其上传到我在Dropbox上的帐户中。 能否请您帮助我确定路径,或者就此而言,可以采取任何可行的措施。
您必须先将文件写入文件系统:
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];
请注意,您也可以使用.jpg
,它速度更快,压缩率更高,只需将UIImagePNGRepresentation
更改为UIImageJPEGRepresentation
,然后传递一个压缩值( UIImageJPEGRepresentation
是好的)
要从“文档目录”中读取文件(并与iTunes共享文件),请使用以下方法:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:@"FILE_NAME" stringByAppendingString:@".EXTENSION"]];
并在您的info.plist中设置关键Application supports iTunes file sharing
为YES
要读取项目中嵌入的文件(不共享iTunes文件)并与文件系统中的文件夹链接,请使用以下命令:
#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]];
}
并将examplesPics文件夹添加到“复制捆绑资源”构建阶段。
如果没有链接文件夹,只需将其分组在项目中即可:
- (NSString *) absolutePathForExampleImage: (NSString *) fileName {
return [[[NSBundle mainBundle] bundlePath] stringByAppendingString:fileName];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.