怎么把图片从eclipse里存储到数据库里去
数据库已经连接好了 各位帮帮忙
数据库已经连接好了 各位帮帮忙
解决方案 »
- 连接sql server的时候executeQuery语句不执行。。><
- 关于最基础的工厂的模式,究竟这种设计模式有什么优势呢?
- 为何我在JBUILDER中 建完WEB module后 会出现这样的错误呀??
- list里的那个getselectitem的功能在jlist下怎么实现.
- 各位老师帮忙啊,我在mysql query browser工具中,直接在resultset 1结果中编辑输入汉字,我怎么设计表的字符集及在JSP中怎么取才能正确
- 救命呀!!!
- 关于StreamTokenizer程序异常分析!帮忙看看
- 请教:如何在原zip文件中加入新zipEntry? (online waiting...)
- 散分!程序员不识 GNU ,纵称高手也不牛!
- 大家好,我想学JAVA,不知道学哪个公司的好?我是新手
- Swing怎么使控件的大小随着窗体的大小而改变
- 请教一个问题 有关I/O
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@172.16.34.4:1521:frerp";
Connection con=DriverManager.getConnection(url,"aa","bb"); //插入数据库
String sql="insert into test_img values (?,?,?)"; //问号里该怎么写
//获取传值ID
String id=request.getParameter("id");
//获取image的路径
String kk=request.getParameter("image");
//转换成file格式
java.io.File filename=new java.io.File(kk); //将文件的长度读出,并转换成Long型
long l1=filename.length();
int l2=(int)l1; //以流的格式赋值
FileInputStream fis=new FileInputStream(filename);
PreparedStatement ps =con.prepareStatement(sql);
ps.setString(1,id);
ps.setString(2,filename.getName());
ps.setBinaryStream(3,fis,12);
//ps.setBinaryStream(3,fis,fis.available());
ps.executeUpdate();
//ps.execute();
ps.close();
fis.close();
con.close();
out.println("ok!!!");
%>
int size = input.available();
byte[] bytes = new byte[size];//PS:较大的文件可能会有内存溢出等问题
input.read(bytes);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ByteArrayOutputStream inStream = new ByteArrayOutputStream();
byteArrayOutputStream.write(bytes);
if ((size % 3) == 1) {
byteArrayOutputStream.write(0);
byteArrayOutputStream.write(0);
} else if ((size % 3) == 2) {
byteArrayOutputStream.write(0);
}
byteArrayOutputStream.writeTo(MimeUtility.encode(inStream, "base64"));
code = inStream.toString();
input.close();
byteArrayOutputStream.close();
inStream.close();将所得的code字符串保存到数据库。同理从数据库取出字符串反解析:(PS:这里是转成SWT中Image)
ByteArrayInputStream m_oBin = new ByteArrayInputStream(image.getBytes());
InputStream m_oInS = null;
org.eclipse.swt.graphics.Image m_oImage = null;
try {
m_oInS = MimeUtility.decode(m_oBin, "base64");
m_oImage = new org.eclipse.swt.graphics.Image(null, m_oInS);
m_oBin.close();
} catch (Exception e) {
} finally{//关闭流
try {
m_oBin.close();
} catch (IOException e) {
}
}
return m_oImage;