我要用JAVA存图片到数据库

有一个安卓的前台用一个图片选择器选择图片传到后台然后通过INSERT存到数据库,请问前台传过来的图片的数据格式是什么类型的。... 有一个安卓的前台用一个图片选择器选择图片传到后台然后通过INSERT存到数据库,请问前台传过来的图片的数据格式是什么类型的。 展开
 我来答
mikemelon2012
2014-10-14 · TA获得超过3633个赞
知道大有可为答主
回答量:938
采纳率:87%
帮助的人:390万
展开全部
Android保存到数据库一般用SQLite,图片要是直接保存到数据库里面去,SQLite是用一种叫BLOB(大二进制对象)的类型保存的,在Java中需要用InputStream(读取时)和OutputStream(写入时)进行处理。

还有一种存图片的方法:图片进数据库的不一定是图片本身,你可以只传图片的路径(绝对或相对路径),这样就只需要一个字符串字段了(string, varchar之类的),需要时查到数据库里的路径在连接到文件系统就找到了。
更多追问追答
追问
用测试

从页面传递过来的数据我用
request.getParameter()
获取的时候为何只有文件的名字
而不是整体的路径
追答
这种控件,不能用request.getParameter()取的,你用没用Struts 2文件上传?你的表单这个属性设了没,如果都搞定的话后台是放在一个Java的File对象里的,把它保存在磁盘上,路径你自己定。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小锄头andrew
2014-10-14 · TA获得超过627个赞
小锄头andrew
采纳数:224 获赞数:627

向TA提问 私信TA
展开全部
二进制流数据,跟存文件一个道理
更多追问追答
追问
没用过二进制流数据,能给我举个例子么
追答
public int  insertbinary(String pname,String src1){
Connection con = null;
  String sql = "insert into test values(?,?)";
  String sql1 ="update test set image=? where pname=?";
  int res = 0;
  try {
  con=BaseDAO.getConnection();
con.setAutoCommit(false);
PreparedStatement pstm = con.prepareStatement(sql);
pstm.setString(1, pname);

pstm.setBlob(2, oracle.sql.BLOB.empty_lob());
pstm.executeUpdate();
pstm.close();
pstm = con.prepareStatement("select  * from test where pname=?");
pstm.setString(1, pname);
ResultSet rs = pstm.executeQuery();
rs.next();
BLOB blob = (BLOB) rs.getBlob(2);
OutputStream os = blob.getBinaryOutputStream();
FileInputStream fi = new FileInputStream(src1);
byte[] buff = new byte[1024];
int len = fi.read(buff);
while (len != -1) {
    os.write(buff);
    len = fi.read(buff);
}
pstm = con.prepareStatement(sql1);
pstm.setBlob(1, blob);
pstm.setString(2, pname);
 res = pstm.executeUpdate();
con.commit();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LindenKrebs
2014-10-14 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:68.6万
展开全部
不建议将图片转为二进制存入数据库
实际应用中 数据库都是保存图片地址
更多追问追答
追问
从页面上面提交过来的图片数据他的格式是是什么?比如我用
request.getParameter("图片name");这个时候我获得的参数是什么类型的?
追答
String
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hzluluguest
2014-10-14 · 超过21用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:46.2万
展开全部
二进制流二进制流
追问
能具体说一下么?
追答
流读取文件,然后流输出拷贝到服务器下的路径,你要得到的是服务器的路径,客户端的路径和你没关系

数据库保存的是服务器拷贝后的路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式