将视频上传到SQLite

问题描述:

是否可以将视频上传到SQLite数据库(不仅仅是URL)?我尝试过但没有找到成功;如果有人知道解决方案,请发布答案。将视频上传到SQLite

+0

你有什么要求?你的代码是什么样的,你会得到什么样的错误信息? – 2010-10-23 14:13:37

NSData *imgData; 
imgData = [[NSData alloc] initWithContentsOfURL: 
        [NSURL URLWithString:[aDict objectForKey:@"Icon"]]]; 
if (sqlite3_prepare_v2(database, sqlStatement1, -1, 
         &compiledStatement1, NULL) == SQLITE_OK) 
{ 
    sqlite3_bind_blob(compiledStatement1, 1, [imgData bytes], 
         [imgData length], SQLITE_TRANSIENT); 
} 

if ([[aDict objectForKey:@"Icon"] length] > 0) 
{ 
    [imgData release]; 
} 

将大文件存储在SQL数据库(特别是SQLite)听起来不太好。 如果您确实需要这样做,请确保使用BLOB列并正确地转义您的数据。

+0

我使用blob类型,它也将网址转换为..base64字符串,但数据不保存在表....如果你有代码PLZ发送给我... – parvind 2010-10-23 14:19:25

+5

http://thedailywtf.com/Articles/ plz-email-me-teh-codez.aspx – 2010-10-23 14:27:16

尝试将大型二进制数据存储在数据库中是一种非常糟糕的做法,您最好将视频存储在手机上并将视频的位置存储在数据库中。这将显着提高打开文件的速度,因为在iPhone上查找文件比从数据库中提取所有这些字节快得多。

+0

我想构建独立的应用程序,以便用户可以在没有任何网络连接的情况下使用它,所以我需要将手机内存中的视频保存到它自己... – parvind 2010-10-23 14:28:39

+0

Liam不是在谈论一个网络位置,但是一个文件系统文件夹。 – vikingosegundo 2010-10-23 20:19:54

这不是这个问题的确切答案。但我想解决。您可以将视频作为文件格式保存在文档目录中。并将文件名插入到SQLITE数据库中。

只要你想访问视频,你可以通过查询文件名轻松完成。

由于SQLITE是一个低重量数据库&,因此不建议在它上面增加重负载。