//------------------------------//
1表结构
//------------------------------//create table test_img(id number(4),name varchar(20),img long raw,primary key(id));//------------------------------//
2(NewImg.html)
//------------------------------//<html>
<head><title>添加图片</title></head>
<body>
添加图片<br>
<form method="post" action="insertNews.jsp">
图像ID:<input name="id" size="10">
<br>
选择图像:<input type="file" name="image">
<br><br>
<input type="submit" value="上传" name="submit" size="25">
<input type="reset" value="清除" name="clear" size="25">
</form>
</body>
</html>//------------------------------//
3(InsertImg.jsp)
//------------------------------//<%@ page import="java.io.*"%><%//连接数据库(直连)
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@docusoft-lzk:1521:lzk";
Connection con=DriverManager.getConnection(url,"test","include");//插入数据库
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!!!");
%>//------------------------------//
4(ShowImg.jsp)
//------------------------------//<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@docusoft-lzk:1521:lzk";
Connection con=DriverManager.getConnection(url,"test","include");String image_id = (String) request.getParameter("ID");
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都没有错误。icech不是很懂,都是参考别人的。
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();
%>//------------------------------//
5(ListImg.jsp)
//------------------------------//<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@docusoft-lzk:1521:lzk";
Connection con=DriverManager.getConnection(url,"test","include");
PreparedStatement sql=con.prepareStatement("select ID,NAME from test_img");
ResultSet rs = sql.executeQuery();
%>
<html>
<head>
<title>图片阅览</title>
</head>
<body>
<table width="75%" border="1">
<%
while(rs.next())
{
String ID = rs.getString(1);
out.println("<tr>");
out.println("<td>" + ID + "</td>");
out.println("<td>" + rs.getString(2) + "</td>");
out.println("<td><img src=\"ShowImg.jsp?ID=" + ID + "\"></td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>
1表结构
//------------------------------//create table test_img(id number(4),name varchar(20),img long raw,primary key(id));//------------------------------//
2(NewImg.html)
//------------------------------//<html>
<head><title>添加图片</title></head>
<body>
添加图片<br>
<form method="post" action="insertNews.jsp">
图像ID:<input name="id" size="10">
<br>
选择图像:<input type="file" name="image">
<br><br>
<input type="submit" value="上传" name="submit" size="25">
<input type="reset" value="清除" name="clear" size="25">
</form>
</body>
</html>//------------------------------//
3(InsertImg.jsp)
//------------------------------//<%@ page import="java.io.*"%><%//连接数据库(直连)
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@docusoft-lzk:1521:lzk";
Connection con=DriverManager.getConnection(url,"test","include");//插入数据库
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!!!");
%>//------------------------------//
4(ShowImg.jsp)
//------------------------------//<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@docusoft-lzk:1521:lzk";
Connection con=DriverManager.getConnection(url,"test","include");String image_id = (String) request.getParameter("ID");
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都没有错误。icech不是很懂,都是参考别人的。
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();
%>//------------------------------//
5(ListImg.jsp)
//------------------------------//<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@docusoft-lzk:1521:lzk";
Connection con=DriverManager.getConnection(url,"test","include");
PreparedStatement sql=con.prepareStatement("select ID,NAME from test_img");
ResultSet rs = sql.executeQuery();
%>
<html>
<head>
<title>图片阅览</title>
</head>
<body>
<table width="75%" border="1">
<%
while(rs.next())
{
String ID = rs.getString(1);
out.println("<tr>");
out.println("<td>" + ID + "</td>");
out.println("<td>" + rs.getString(2) + "</td>");
out.println("<td><img src=\"ShowImg.jsp?ID=" + ID + "\"></td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>
http://www.tongyi.net/article/20031015/200310153755.shtml
http://www.tongyi.net/article/20031015/200310153755.shtml
将“流氓无赖”测试到底
——始于2003年7月
树欲止而风不停,行云流水匆匆去;
树梢蚂蚱凭空望,江边浪花碎巨石; 支持“流金岁月”!!!
——2003年12月24日am^@^
上传:Example4_13.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY>
<P>选择要上传的文件:<BR>
<FORM action="accept.jsp" method="post" ENCTYPE="multipart/form-data">
<INPUT type=FILE name="boy" size="38">
<BR>
<INPUT type="submit" name ="g" value="提交">
</BODY>
</HTML>accept.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import ="java.io.*" %>
<HTML>
<BODY>
<%try{ InputStream in=request.getInputStream();
File f=new File("F:/2000","B.txt");
FileOutputStream o=new FileOutputStream(f);
byte b[]=new byte[1000];
int n;
while((n=in.read(b))!=-1)
{o.write(b,0,n);
}
o.close();
in.close();
}
catch(IOException ee){}
out.print("文件已上传");
%>
</BODY>
</HTML>例子14(效果如图4.21、4.22、4.23所示)
Example4_14.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY>
<% String str=response.encodeURL("acceptFile.jsp");
%>
<P>选择要上传的文件:<BR>
<FORM action="<%=str %>" method="post" ENCTYPE="multipart/form-data">
<INPUT type=FILE name="boy" size="45">
<BR> <INPUT type="submit" name ="g" value="提交">
</FORM>
</BODY>
</HTML>
acceptFile.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import ="java.io.*" %>
<HTML>
<BODY>
<%try{ //用客户的session的id建立一个临时文件:
String tempFileName=(String)session.getId();
//建立临时文件f1:
File f1=new File("D:/Tomcat/jakarta-tomcat-4.0/webapps/examples/",tempFileName);
FileOutputStream o=new FileOutputStream(f1);
//将客户上传的全部信息存入f1:
InputStream in=request.getInputStream();
byte b[]=new byte[10000];
int n;
while( (n=in.read(b))!=-1)
{o.write(b,0,n);
}
o.close();in.close();
//读取临时文件f1,从中获取上传文件的名字,和上传的文件的内容:
RandomAccessFile random=new RandomAccessFile(f1,"r");
//读出f1的第2行,析取出上传文件的名字:
int second=1;
String secondLine=null;
while(second<=2)
{secondLine=random.readLine();
second++;
}
//获取第2行中目录符号'\'最后出现的位置
int position=secondLine.lastIndexOf('\\');
//客户上传的文件的名字是:
String fileName=secondLine.substring(position+1,secondLine.length()-1);
random.seek(0); //再定位到文件f1的开头。
//获取第4行回车符号的位置:
long forthEndPosition=0;
int forth=1;
while((n=random.readByte())!=-1&&(forth<=4))
{ if(n=='\n')
{ forthEndPosition=random.getFilePointer();
forth++;
}
}
//根据客户上传文件的名字,将该文件存入磁盘:
File f2=new File("D:/Tomcat/jakarta-tomcat-4.0/webapps/examples/",fileName);
session.setAttribute("Name",fileName);//供showImage.jsp页面使用。
RandomAccessFile random2=new RandomAccessFile(f2,"rw");
//确定出文件f1中包含客户上传的文件的内容的最后位置,即倒数第6行。
random.seek(random.length());
long endPosition=random.getFilePointer();
long =endPosition;
int j=1;
while((>=0)&&(j<=6))
{ --;
random.seek();
n=random.readByte();
if(n=='\n')
{ endPosition=random.getFilePointer();
j++;
}
}
//将random流指向文件f1的第4行结束的位置:
random.seek(forthEndPosition);
long startPoint=random.getFilePointer();
//从f1读出客户上传的文件存入f2(读取从第4行结束位置和倒数第6行之间的内容)。
while(startPoint<endPosition-1)
{ n=random.readByte();
random2.write(n);
startPoint=random.getFilePointer();
}
random2.close();random.close();
f1.delete(); //删除临时文件
}
catch(IOException ee){}
out.print("文件已上传");
%>
<P> 查看上传的图象效果
<%String str=response.encodeURL("showImage.jsp");
%>
<FORM action="<%=str%>">
<Input type=submit value="查看">
</FOrm >
</BODY>
</HTML>
showImage.jsp:
<HTML>
<BODY>
<% String name=(String)session.getAttribute("Name");
if(name==null)
{name="";
}
out.print("<image src=http://192.168.1.100:8080/examples/"+name);
%>
</BODY>
</HTML>
里面有例子!