获取照片和视频文件路径并存储到sqlite中

时间:2011-07-19 12:59:31

标签: iphone objective-c sqlite

我正在尝试将照片和视频文件路径存储到sqlite中。 我得到这样的照片,但我想知道我如何获得文件路径并将其存储到sqlite中同样的事情是我需要视频也可以这样做或者是任何其他想法或提示来解决

-(IBAction) getPhoto:(id) sender {
    UIImagePickerController * UIPicker = [[UIImagePickerController alloc] init];
    UIPicker.delegate = self;



    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
    {


        UIPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:UIPicker animated:YES];
    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Error" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {


    [picker dismissModalViewControllerAnimated:YES];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}

我会帮助我的人 提前致谢

4 个答案:

答案 0 :(得分:2)

 NSData *imageData = UIImagePNGRepresentation(sample);
NSData *myImage=[[NSData alloc]initWithData:imageData];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Image%d.png",i]];
[myImage writeToFile:fullPathToFile atomically:YES];
[myImage release];

希望此代码有所帮助。 其中我是一个整数,可以取任何值1,2,3 .... 每次增加i以避免覆盖图像。现在你可以存储很多图像而没有任何覆盖问题。如果你想在应用程序关闭后继续存储不同的图像,你可以使用NSUSerDefaults来存储i的最后一个值。

NSString *myImage=[NSString stringWithFormat:@"Image%d",i];

在此之后将i值增加1.然后使用myImage字符串将其存储在sqlite数据库中。希望这会有所帮助。

Link1 Link2

答案 1 :(得分:0)

检查UIImagePickerControllerDelegate中的UIImagePickerControllerReferenceURL。

这将给出文件路径。

但我建议使用NSFileManager将该图像存储在其他地方,并将该文件路径存储在sqlite中,因为图像可能会被其他方式删除。

答案 2 :(得分:0)

您需要使用NSFileManager将图像存储到文档目录中。在google或stackoverflow上搜索,你会发现很多教程。然后将该路径存储到sqlite中即可。我建议您为每个图像使用唯一标识符,您也可以在goole或stackoverflow上找到该代码段。

答案 3 :(得分:0)

NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *docDirectory = [sysPaths objectAtIndex:0];


    NSString *filePath = [NSString stringWithFormat:@"%@/%@", docDirectory,@"ImageName.png"];
    awesomeView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10,60,60 )];
    awesomeView.image =[UIImage imageWithContentsOfFile:filePath];
    [mainView addSubview:awesomeView];
    [awesomeView release];

您可以使用此代码从文档文件夹中检索图像并将其显示在UIImageView中。您只需在sqlite中存储文件的名称即可。使用它可以用从数据库中检索的fileName替换@“image.png”。希望这会有所帮助。