用Java能不能把一张图片存到MySQL数据库中啊
Filefile=newFile("f:\\image.jpg");FileInputStreamin=newFileInputStream(file);intsize=...
File file = new File("f:\\image.jpg");
FileInputStream in = new FileInputStream(file);
int size = (int) file.length();
byte data[] = new byte[size];
in.read(data);
in.close();
比如我这样把图片存到data里面了,怎么样把data里边的内容存到数据库呢?
我想这样设计表的字段:
filename form data
第一个字段存文件名,第二个字段存格式,前两个字段好设置,直接用VARCHAR就应该可以了,但字段data用什么格式呢,而且不同的图片大小不一,它的长度要设置成多少呢?
以后想恢复的话想用下面的语句恢复:
data=res.getString("data"); (res是ResultSet型,是通过查询返回的数据)
filename=res.getString("name");
form=res.getString("form");
filename=filenaeme+"."+form;
FileOutputStream out = new FileOutputStream(filename);
out.write(data);
out.close();
问题是:res.getString("data");得到的是字符串,怎么转成byte类型呢?
求高手解答,小弟感激不尽。 展开
FileInputStream in = new FileInputStream(file);
int size = (int) file.length();
byte data[] = new byte[size];
in.read(data);
in.close();
比如我这样把图片存到data里面了,怎么样把data里边的内容存到数据库呢?
我想这样设计表的字段:
filename form data
第一个字段存文件名,第二个字段存格式,前两个字段好设置,直接用VARCHAR就应该可以了,但字段data用什么格式呢,而且不同的图片大小不一,它的长度要设置成多少呢?
以后想恢复的话想用下面的语句恢复:
data=res.getString("data"); (res是ResultSet型,是通过查询返回的数据)
filename=res.getString("name");
form=res.getString("form");
filename=filenaeme+"."+form;
FileOutputStream out = new FileOutputStream(filename);
out.write(data);
out.close();
问题是:res.getString("data");得到的是字符串,怎么转成byte类型呢?
求高手解答,小弟感激不尽。 展开
3个回答
展开全部
可以,用BLOB,但是不推荐这么做,保存路径比较好
追问
保存路径是直接把路径存在一个字段里吗?
那以后想用怎么用啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MySQL 不是文本类数据存储,不能直接存储图片和文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库中使用blob字段。 不过建议还是存储图片路径吧,数据库的输出流慢的多
追问
保存路径是直接把路径存在一个字段里吗?
那以后想用图片怎么用啊
追答
用varchar 类型的字段,将文件路径(字符串)保存到数据库中,至于文件本身,需要另外创建文件夹,保存到本地磁盘,或者服务器的磁盘,用的时候就根据这个路径把文件读取出来,读取速度 比数据库的要快的多,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询