百分求急:JSP上传文件到SQLServer2000数据库 英雄们,支持下吧,我昨天弄了一天了。罩不住了,java文件那块就没怎么学。今天再弄不出来,就耽误事了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对,可以先到本地,再到库。hero,help me! 为什么都要往数据库里面塞!先是图片,现在成了文件了,这样做有效率吗?我赶肯定你们公司之前没有做jsp的,甚至没有用过数据库的... 老兄,用google查一下,如何把文件以二进制方式存入blob字段就可以了给你找了一下http://www.java007.com/javadoc5/java245395.htmhttp://www.ask321.com/ask29/how206620.htm把数据库连接改一下就差不多了吧! 插入数据库(InsertImg.jsp) <%@ page language="java"%> <%@ 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:@lubin:1521:b2bdb"; Connection con=DriverManager.getConnection(url,"demo","demo"); //插入数据库 String sql="insert into test_img values (?,?,?)"; //获取传值ID String id=request.getParameter("id"); //获取image的路径 String kk=request.getParameter("image"); //转换成file格式 File filename=new 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,l2); //ps.setBinaryStream(3,fis,fis.available()); ps.executeUpdate(); //ps.execute(); ps.close(); fis.close(); out.println("ok!!!"); %> 显示图片(ShowImg.jsp) <%@ page language="java" import="java.sql.*"%> <%@ page import="java.io.*"%> <%@ page contentType="text/html;charset=gb2312"%> <% Class.forName("oracle.jdbc.driver.OracleDriver"); String url="jdbc:oracle:thin:@lubin:1521:b2bdb"; String image_id = (String) request.getParameter("ID"); Connection con=DriverManager.getConnection(url,"demo","demo"); PreparedStatement sql=con.prepareStatement("select * from test_img WHERE id = " + image_id); ResultSet rs = sql.executeQuery(); rs.next(); //输入img字段内容到in InputStream in = rs.getBinaryStream("img"); //以下可是任何处理,比如向页面输出: response.reset(); //此处的image/jpeg似乎与显示的图片格式无关 //因为我显示jsp和gif都没有错误 response.setContentType("image/jpeg"); byte[] b = new byte[1024]; int len; while((len=in.read(b)) >0) response.getOutputStream().write(b,0,len); in.close(); rs.close(); %> javaboat(毛豆) SQLServer2000 好象没有blob类型的字段. 有image类型嘛~!有那个组件吗?我有.要的话留下email image 类型,常常误为“图象”类型,实际上是“映象”类型,专门存储2进制文件。 删除一条记录时当刷新后页面还显示原来的记录 新手 ssh 整合 compass,compass 出错 ... 帮我看下extjs树的问题谢谢 国际化,资源文件,key大家都是怎么命名的? 一个jsp的问题 图片显示的问题~! tomcat的配置? 表单中file和text一起提交的问题 在线等待 小弟有个问题 关于JAVABEAN的问题?请大家帮个忙! session存在时间一问 js32.lib and js32.dll
hero,help me!
我赶肯定你们公司之前没有做jsp的,甚至没有用过数据库的...
<%@ 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:@lubin:1521:b2bdb";
Connection con=DriverManager.getConnection(url,"demo","demo"); //插入数据库
String sql="insert into test_img values (?,?,?)";
//获取传值ID
String id=request.getParameter("id");
//获取image的路径
String kk=request.getParameter("image");
//转换成file格式
File filename=new 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,l2);
//ps.setBinaryStream(3,fis,fis.available());
ps.executeUpdate();
//ps.execute();
ps.close();
fis.close();
out.println("ok!!!");
%> 显示图片(ShowImg.jsp) <%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page contentType="text/html;charset=gb2312"%> <%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@lubin:1521:b2bdb";
String image_id = (String) request.getParameter("ID"); Connection con=DriverManager.getConnection(url,"demo","demo");
PreparedStatement sql=con.prepareStatement("select * from test_img WHERE id = " + image_id);
ResultSet rs = sql.executeQuery(); rs.next();
//输入img字段内容到in
InputStream in = rs.getBinaryStream("img"); //以下可是任何处理,比如向页面输出: response.reset();
//此处的image/jpeg似乎与显示的图片格式无关
//因为我显示jsp和gif都没有错误
response.setContentType("image/jpeg");
byte[] b = new byte[1024];
int len;
while((len=in.read(b)) >0)
response.getOutputStream().write(b,0,len); in.close();
rs.close();
%>