【问题标题】:how to insert an image in mysql -android如何在mysql -android中插入图像
【发布时间】:2014-01-04 22:23:26
【问题描述】:

最近我正在研究 MySql 和 Sql,我发现我几乎可以插入所有原始类型数据,但是可以将 jpeg/jpg/bmp/png(图像)文件存储在数据库中。如果是这样,那么请您编写代码。不需要解释整个事情只是关键点。

谢谢

【问题讨论】:

  • 关键点是:你不应该在数据库中存储 fike。保存在普通文件系统上,在 db 中保留引用
  • 是的,我知道,但我想让我的照片更安全,这就是我考虑这个的原因。

标签: android mysql sql database image


【解决方案1】:

1 或许将图片转换为Byte Array(如果不是bmp,则转换),然后将其作为Blob类型存储在MySql中,然后在阅读它时,您可以通过代码(我不知道您使用的是什么语言)创建一个 BitmapByte Array 与您阅读的内容,或者也许只是获取与图像关联的代码并将其存储并读取它。

Converting an image to a Byte Array

2 使用图片托管 API(如 Imgur)并将用户的图片上传到该网站,并在您想使用时从数据库中读取 URI它。

Imgur API, Android Example

【讨论】:

  • 我正在使用 java,用于 android 开发。但是,数据库执行代码应该保持不变。那么,我应该将 Bitmap 作为 Blob 类型插入吗?还是我需要把它转换成别的东西(可能是数字或者我不知道)?
  • @androCoder-BD 我会将它作为 SQL 的 Blob 类型插入。您可以将图像转换为字节数组,请参阅stackoverflow.com/questions/3211156/…
【解决方案2】:

有3种情况如何制作(我知道)

  1. 从 SD 卡中保存路径,如数据库中的字符串
  2. 如果图像位于应用程序的 res 文件夹中,则保存 int 值。
  3. 如果图片在 Internet 中,则将 url 保存为字符串。

【讨论】:

  • 抱歉,您可能没有正确理解我的问题。 :)。想知道如何将它们存储在数据库中。
【解决方案3】:

抱歉,回复晚了。但是,我找到了一种将图像转换为字符串然后将其存储在 mysql 中的方法。 此答案仅适用于仍在寻找简单解决方案的人:

代码:

    Bitmap bm = BitmapFactory.decodeFile("/path/to/myImage.jpg");
    ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    byte[] b = baos.toByteArray(); 

然后:

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);

然后编码的图像是一个字符串格式,我可以插入到数据库中。 希望对仍在寻找答案的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2018-05-24
    • 1970-01-01
    • 2021-05-21
    • 2013-01-16
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2020-03-28
    相关资源
    最近更新 更多