try {
java.net.URL url = new URL(weburl);//创建URL连接
URLConnection uc = url.openConnection();
InputStream is = uc.getInputStream();
String sql = "insert into zc(tupian) values(?)";
pst = conn.prepareStatement(sql);
pst.setBinaryStream(1,is);
pst.executeUpdate();
s.close(); 
} catch (Exception e) {
System.out.println("页面没有找到!");
}
上面的一段代码是网上下载了一张图片,然后保存到数据库mysql中,但是数据显示说
The BLOB field contains a corrupted image file.(图像文件损坏),数据库字段
格式是blob类型。但是我保存到本地硬盘上时,却可以正常显示!这是怎么回事?
求高手指点!!!

解决方案 »

  1.   

    pst.setBinaryStream(1, is, is.available());填充式提交 
      

  2.   

    INSERT into zc(tupian) values(LOAD_FILE('D:\1.jpg'));
      

  3.   

    你的是网络上的资源还是本地的,Mysql一般存得是图片地址,Oracal才会存二进制。给你找的一篇文章http://eric-gcm.iteye.com/blog/937860
      

  4.   

    MySQL的四种BLOB类型
        类型               大小(单位:字节)
      TinyBlob          最大 255
      Blob              最大 65K
      MediumBlob        最大 16M
      LongBlob          最大 4G
    所以用BLOB时,图片大小如果大于65K就会出错