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

Iphone 获取照片和视频文件路径并存储到sqlite,iphone,objective-c,sqlite,Iphone,Objective C,Sqlite,我正在尝试创建照片和视频文件路径,并将其存储到sqlite中。 我得到的照片是这样的,但我想知道如何获取文件路径并将其存储到sqlite中,同样的事情是,我需要使用video alsoIs来实现这一点,或者这是解决这一问题的任何其他想法或提示吗 -(IBAction) getPhoto:(id) sender { UIImagePickerController * UIPicker = [[UIImagePickerController alloc] init]; UIPicke

我正在尝试创建照片和视频文件路径,并将其存储到sqlite中。 我得到的照片是这样的,但我想知道如何获取文件路径并将其存储到sqlite中,同样的事情是,我需要使用video alsoIs来实现这一点,或者这是解决这一问题的任何其他想法或提示吗

-(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"];
}
我想人们会帮助我的
提前感谢

在中检查UIImagePickerControllerReferenceURL

这将给出文件路径


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

您需要使用NSFileManager将图像存储到文档目录中。在谷歌或stackoverflow上搜索,你会发现许多教程。然后将该路径存储到sqlite中,就是这样。我建议您对在goole或stackoverflow上也能找到的每个图像使用唯一标识符

 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];
希望这段代码有帮助。 其中i是一个整数,可以取任何值1,2,3。。。。 每次递增i以避免覆盖图像。现在,您可以存储许多图像而不会出现任何覆盖问题。如果您希望在应用程序关闭后继续存储不同的图像,您可以使用NSUSerDefaults来存储i的最后一个值

NSString *myImage=[NSString stringWithFormat:@"Image%d",i];
在此之后,将i值增加1。然后使用myImage字符串将其存储在sqlite数据库中。希望这有帮助


您可以使用此代码从documents文件夹中检索图像,并将其显示在UIImageView中。您只需将文件名单独存储在sqlite中即可。使用这个u可以用从数据库检索到的文件名替换@“image.png”。希望这能有所帮助。

它会将照片存储在DocumentsDirectory中它是什么[NSString stringWithFormat:@“Image.png”]我没听清楚。你能给我解释一下关于@“Image.png”的更多信息吗?这只是图像文件的名称。在将其转换为格式化字符串后,我通过追加PathComponent将其传递给stringByAppendingPathComponent。我现在已经编辑了答案。如果你想,你可以忽略格式选项,直接给@“image.png”文件名。希望你现在找到我了。这是我获取照片imageView.image=[info objectForKey:@“UIImagePickerController原始图像”];“imageView.image”是我的UIImageView*imageView。我可以使用imageView替换为image.pngNo。。。。image.png是文件名。您正在命名文件b4并将其保存到文档文件夹。它必须是字符串。您无法将UIImageView对象传递给它。我感到困惑。您能进一步解释我喜欢这个NSString*fullPathToFile=[DocumentsDirectoryStringByAppendingPathComponent:[NSString stringWithFormat:@“%@.png”,camtitle.text]];但是什么时候才能得到这个来展示呢
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];