读书人

jsp上传图片到数据库(oracle),并能在页

发布时间: 2012-02-23 22:01:35 作者: rapoo

jsp上传图片到数据库(oracle),并能在页面上显示
在jsp里面 <input type= "file " value= "上传 "> 时的路径在构造File类时报错,原因是(如路径:c:\1.jpg)应该是c:\\1.jpg,如果不用组件,应该如何才能把路径c:\1.jpg 转为c:\\1.jpg???
如果使用组件,在网上也看了好多的贴子,哎,都是把那个路径写死了,但我的问题还是解决不了,哎,请大家帮帮忙!!发给我一个完整的程序吧,图片通过选择上传数据库中,并从数据库中读出来能显示图片!!!多谢!!!!请发送到我的邮箱中xxxjbg@163.com,多谢了!这个问题已经困住我好多天了,还是解决不了!!!!

[解决办法]
给你一个JSP上传文件到ORACLE成功的例子
====================
upload1.jsp
====================
//选择上传文件
<%@ page contentType= "text/html; charset=gb2312 "%>
<HTML> <HEAD>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<link href= "css/text.css " rel= "stylesheet " type= "text/css ">
</HEAD>
<BODY bgColor=#f0f0f0 leftmargin= "0 " topmargin= "3 " marginwidth= "0 " marginheight= "0 ">
<FORM action= "upload.jsp " encType= "multipart/form-data " method= "post ">
<span class= "liao1 "> 文件上传 </span> :
<TABLE>
<TBODY>
<TR>
<TD>   文件1:
  
<INPUT type= "file " name= "file "> </TD>
<TD>  文件2:   
<input type= "file " name= "file1 "> </TD>
<TD> <INPUT type= "submit " value= "上载文件 " name= "send "> </TD>
</TR>
</TBODY>
</TABLE>
</FORM>
</BODY>
</HTML>

======================
upload.jsp
======================
//上传文件处理页面
<%@ page contentType= "text/html;charset=gb2312 "%>
<%@ page language= "java "%>
<%@ page import= "java.sql.* " %>
<%@ page import= "com.dd.database.DatabaseService "%>
<br>
<%
try
{
String sessionID=session.getId();
DatabaseService pobjDatabaseService = new DatabaseService();
//实例化上载bean
com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
//设置上载的最大值
mySmartUpload.setMaxFileSize(500 * 1024*1024);
//上载文件
mySmartUpload.upload();
//循环取得所有上载的文件
for (int i=0;i <mySmartUpload.getFiles().getCount();i++)
{
//取得上载的文件
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing())
{
//取得文件全名
String myFileName=myFile.getFileName();
//取得不带后缀的文件名
String suffix=myFileName.substring(0,myFileName.lastIndexOf( '. '));
//取得后缀名
String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
if(ext.equals( "exe "))
{
out.println( "上传文件不能为EXE文件 ");
return;
}
//取得文件的大小
int fileSize=myFile.getSize();
//保存路径
String aa=getServletContext().getRealPath( "/ ")+ "upfile\\ ";
String trace=aa+myFileName;
//取得别的参数
String explain=(String)mySmartUpload.getRequest().getParameter( "text ");
String send=(String)mySmartUpload.getRequest().getParameter( "send ");
//将文件保存在服务器端
myFile.saveAs(trace,com.jspsmart.upload.File.SAVEAS_PHYSICAL);

//将上载的文件保存到数据库中


//将文件读到流中
java.io.File file = new java.io.File(trace);
java.io.FileInputStream fis = new java.io.FileInputStream(file);
//打开数据库
String mStrSql=null;
ResultSet mobjResult=null;
PreparedStatement mobjPrestmt=null;
mStrSql= "insert into H_uploadfile(markname,marksize,MarkBody,randomname,sessionid) values (?,?,?,?,?) ";
java.util.Random pobjRandom = new java.util.Random(new java.util.Date().getTime());
long plogRandom = pobjRandom.nextLong();
String mstrRandomName = String.valueOf(plogRandom);
//随机名
mstrRandomName = mstrRandomName + ". " + ext;
mobjPrestmt=pobjDatabaseService.getPreparedStatement(mStrSql);
mobjPrestmt.setString(1, suffix);
mobjPrestmt.setInt(2, fileSize);
mobjPrestmt.setBinaryStream(3,fis,(int)file.length());
mobjPrestmt.setString(4,mstrRandomName);
mobjPrestmt.setString(5,sessionID);
pobjDatabaseService.setAutoCommit();
mobjPrestmt.executeUpdate();
pobjDatabaseService.commit();
response.sendRedirect( "jlwj/uploadwenjian.jsp?id=15 ");
}
else
{
out.println(( "上载失败! ").toString());
}
}
}
catch(Exception er)
{
out.println( " <br> ");
out.println(er.getMessage());
}
%>

======================
uploadwenjian.jsp
======================
//上传成功后跳转到该页显示出当前已上传成功的附件
//你要上传的是图片,那么下面显示的地方改为 <img src= ".... "> 就行了
<%@ page contentType= "text/html; charset=gb2312 "%>
<%@ page import= "com.dd.commons.* "%>
<%@ page language= "java "%>
<%@ page import= "java.sql.* "%>
<%@ page import= "java.io.* "%>
<%@ page import= "com.dd.database.DatabaseService "%>
<jsp:useBean id= "mySmartUpload " scope= "page " class= "com.jspsmart.upload.SmartUpload "/>
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> 无标题文档 </title>
<link href= "../css/text.css " rel= "stylesheet " type= "text/css ">
<style type= "text/css ">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style> </head>

<body>
<table width= "100% " border= "0 " cellspacing= "0 " cellpadding= "0 ">
<tr>
<td> <table width= "100% " border= "0 " cellpadding= "0 " cellspacing= "0 ">
<tr>
<td height= "25 " width= "10% "> <a href= "../upload1.jsp " class= "liao1 "> 附加文件 </a> </td>
<td width= "10% " height= "25 ">  
</td>
</tr>
</table> </td>
</tr>
<tr>
<td> <table width= "100% " border= "0 " cellpadding= "0 " cellspacing= "0 ">
<tr>

<%
try
{
//无后辍文件名
String mstrfileName = null;
//后辍名
String mstrBackName = null;
int bytesum=0;
int byteread=0;
String sessionID=session.getId();
DatabaseService pobjDatabaseService = new DatabaseService();


Statement pobjStmt = pobjDatabaseService.createStatement();

ResultSet result = pobjStmt.executeQuery( "SELECT markname,randomname,MarkBody FROM H_uploadfile where sessionid= ' "+sessionID+ " ' ");
if(result!=null)
{
%>
<td height= "25 " width= "10% "> 已附加的文件: </td>
<%
while(result.next())
{
//后辍名
mstrBackName = result.getString( "randomname ");
mstrfileName = result.getString( "markname ");
InputStream inStream=result.getBinaryStream( "MarkBody ");
FileOutputStream fs=new FileOutputStream(FunLibrary.getShowFilePath()+mstrBackName+ " ");
if(mstrBackName!=null&&mstrBackName!= " ")
{
byte[] buffer =new byte[1444];
while ((byteread=inStream.read(buffer))!=-1)
{
bytesum+=byteread;
fs.write(buffer,0,byteread);
}
%>
<td width= "10% " height= "25 ">
<%
String str;
str = " <a href= '../showFile/ "+mstrBackName+ " ' ";
str = str + "target= '_blank '> ";
str = str + mstrfileName;
//如果是要显示图片上面改为str = str + " <img src= '../showFile/ "+mstrBackName+ " '> ";就行
str = str + " </a> ";
out.println(str + " <br> ");
}
}
}
result.close();
}
catch(Exception er)
{
out.println(er.toString());
}

%>
</td>
</tr>
</table> </td>
</tr>
</table>
</body>
</html>

读书人网 >Java Web开发

热点推荐