我是iOS开发的初学者,刚开始使用DropBox SDK for iphone,我目前正在使用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中定义,DBRestClient.h是来自DropBox SDK for iOS的库文件。但是从上面的方法声明中,需要确定UIImageView中存在的图像的“fromPath”以将其上传到我在dropbox上的帐户。能否帮助我确定如何确定路径,或者就此而言,可以适用的任何工作。
答案 0 :(得分:11)
您必须先将文件写入文件系统:
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
,然后传递压缩值(0.8 - 0.9即可)< / p>
答案 1 :(得分:0)
要从文档目录中读取文件(并与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文件夹添加到“Copy Bundle Resources”构建阶段。
如果您没有链接文件夹,只需在项目中分组即可使用:
- (NSString *) absolutePathForExampleImage: (NSString *) fileName {
return [[[NSBundle mainBundle] bundlePath] stringByAppendingString:fileName];
}