在MySQL数据库中存储BLOB

时间:2012-01-29 23:21:10

标签: mysql blob bytearrayinputstream

我将图片上传到服务器,其位置如下:opt / glassfish / domains / domain1 / applications / j2ee-modules / SmartbadgePortal / images / 2badge.jpg

我正在尝试读取图像的内容而不是图像信息。我搜索了很多,可以得到以下解决方案:

                   File uploadedFile = new File(path);
                    System.out.println("Uploaded File is ***  : " + uploadedFile);
                    item.write(uploadedFile);
                    Image image = null;
                    image = ImageIO.read(uploadedFile);
                    System.out.println("Image Contents is ***  : " + image);

然而,当我使用System.out打印"图像"时。我明白了:

图像内容是 * :BufferedImage @ 10d7a81:type = 5 ColorModel:#pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@722270 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster:width = 418 height = 387 #numDataElements 3 dataOff [0] = 2 |#]

但是,这不是我需要的。我需要图像的内容,需要将它存储在MySQL的BLOB列中。请帮助我,因为我一直在尝试各种方法,如ByteArrayInputStream,但每次我只看到这个信息而不是图像本身。

1 个答案:

答案 0 :(得分:0)

虽然这不是您正在寻找的答案,但我的建议是将图像存储在服务器的文件系统中,并将文件名(可能是目录)保存在数据库中。除非有特殊原因,否则将图像存储在BLOB单元格中通常不是一个好主意。