📄 uploadeditoracle.jsp
字号:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.sql.*,java.util.*,com.jspsmart.upload.*"%>
<%@ page import="oracle.sql.BLOB" %>
<%@ page import="oracle.jdbc.*" %>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
//变量定义
public String DBDriver = "oracle.jdbc.driver.OracleDriver";
//这儿需要修改成您的数据库连接信息
public String ConnStr = "jdbc:oracle:thin:@10.216.0.2:1521:ORCL","dms","dms";
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
public String docid = "";
public String filename = "";
public Integer filesize = 0;
public Integer iCurDocID = 0;
//实用函数定义
pbulic void initConn()
{
try
{
//加载数据库驱动程序
Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("ClassNotFoundException: " + e.getMessage());
}
//与DBMS建立连接
try
{
conn = DriverManager.getConnection(ConnStr);
stmt = conn.createStatement();
}
catch(SQLException ex)
{
System.err.println("SQLException: " + ex.getMessage());
}
conn.setAutoCommit(false);//设置自己提交,以提高性能。
}
public void closeConn()
{
stmt.close();
conn.close();
}
public void SaveFileToBlob(String filename,oracle.sql.BLOB blobField,int fileSize) throws IOException
{
try
{
java.io.File file=new java.io.File(fileName);
java.io.InputStream inStream=new java.io.FileInputStream(file);
byte[] bytes = new byte[fileSize];
OutputStream outstream= blobField.getBinaryOutputStream();
inStream.read(bytes);
outstream.write(bytes);
outstream.flush();
outstream.close();
inStream.close();
}
catch(SQLException e)
{
}
}
public byte[] ReadBytesFromBlob(oracle.sql.BLOB blobField,int iSize) throws IOException
{
try
{
byte[] bytes = new byte[iSize];
InputStream instream = blobField.getBinaryStream();
instream.read(bytes,0,iSize);
instream.close();
return bytes;
}
catch(SQLException e)
{
}
}
public int GetCurDocID(String myTableName,String myFieldName)
{
int myResult=0;
String sqlStr ="";
sqlStr = "select max("+myFieldName+")+1 as MaxID from " + myTableName;
try
{
ResultSet result = stmt.ExecuteQuery(sqlStr);
if (result.next())
{
myResult = result.getInt("MaxID");
}
result.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
return (myResult);
}
%>
<%
// Initialization
mySmartUpload.initialize(pageContext);
// Upload
mySmartUpload.upload();
//取消注释以保存文件
//mySmartUpload.save("/jsp/jspdemo/upload");
//初始化连接
initConn();
com.jspsmart.upload.File myFile = null;
docid = mySmartUpload.getRequest().getParameter("docid");
System.out.println("docid="+docid);
for (int i=0;i<mySmartUpload.getFiles().getCount();i++)
{
myFile = mySmartUpload.getFiles().getFile(i);
//debug only
System.out.println("File=" + myFile.getFileName());
//处理数据及文件
if (!myFile.isMissing())
{
filename = myFile.getFileName();
filesize = myFile.getSize();
if(myFile.getFieldName().equalsIgnoreCase("EDITFILE") ) //正文文件
{
//注释掉可用于调试
//System.out.println("处理正文文件");
//System.out.println("filename="+filename);
//System.out.println("filesize="+filesize);
//System.out.println("myFile.getFieldName()="+myFile.getFieldName());
try
{
if ( (docid == null)||(docid.length() == 0) ) // new doc
{
iCurDocID = GetCurDocID("MyUploadTable","id");
String strSql="insert into MyUploadTable(id,filename,filesize,filedata)"
+" values("+iCurDocID+",'"+filename+"'," +filesize+",empty_blob()")";
stmt.execute(strSql);
}
else // edit doc
{
iCurDocID = Integer.parseInt(docid);
}
rs = stmt.executeQuery("select filedata from MyUploadTable where id="+
iCurDocID.toString()+" for update ");
if (rs.next())
{
//保存文件
myFile.saveAs(fileName,mySmartUpload.SAVE_PHYSICAL);
oracle.sql.BLOB blobField = ((oracle.jdbc.OracleResultSet)rs).getBLOB("filedata");
//写入数据库
SaveFileToBlob(fileName,blobField,filesize);
stmt.execute("commit");
}
out.println("保存成功!<br>");
out.println("在线编辑的文件: " + filename + "<br>");
out.println("大小: " + filesize + " bytes<br>");
}
catch(Exception e)
{
out.println("发生错误: " + e.toString());
}
}
else //附件文件
{
try
{
System.out.println("处理附件文件");
System.out.println("filename="+filename);
System.out.println("filesize="+filesize);
System.out.println("myFile.getFieldName()="+myFile.getFieldName());
out.println("其他的文件: " + filename + "<br>");
out.println("大小: " + filesize + " bytes<br>");
}
catch(Exception e)
{
out.println("发生错误: " + e.toString());
}
}
} // end if (!myFile.isMissing())
}// end for
closeConn();
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -