Java实现Oracle文件上传下载示例
该资源主要讨论了如何使用Java在Oracle数据库中实现文件的上传和下载。其中提到了两个工具,一个是JavaZoom的UploadBean,另一个是JSPSmart的Download4J1.0,它们分别用于文件上传和下载的处理。 在Java中,Oracle数据库通常使用BLOB(Binary Large Object)数据类型存储文件。UploadBean是一个Java类,可以用于将文件保存到Oracle数据库的LONGRAW字段,而LONGRAW类型可以存储的最大长度为2GB。由于LONGRAW的限制,当需要存储超过2GB的数据时,推荐使用BLOB类型,因为BLOB的最大存储容量可达4GB。在使用UploadBean时,需要配置数据库连接信息,如驱动、URL、用户名和密码。 以下是一个简单的Java JSP示例,展示了如何使用UploadBean将文件上传到Oracle数据库: ```jsp <%@pagelanguage="java" contentType="text/html;charset=gb2312" import="javazoom.upload.*,java.util.*"%> <%@pageerrorPage="ExceptionHandler.jsp"%> <jsp:useBean id="upBean" scope="application" class="javazoom.upload.UploadBean"> <% Properties props = new Properties(); props.put("user", "cepic"); props.put("password", "lpsc"); upBean.setDatabaseStore("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@10.231.234.252:1521:cepic", props); //设置数据库连接信息 %> </jsp:useBean> ``` 这段代码首先创建了一个UploadBean实例,并设置了数据库连接参数,包括数据库驱动、连接字符串以及用户名和密码。 对于文件下载,可以使用Download4J库来实现。这个库提供了方便的API,可以用来从Oracle数据库中读取BLOB字段并将其写入HTTP响应,以便用户下载。 此外,JSPSmart的SmartUpload组件也是一个常用的文件上传工具,它不仅支持文件上传,还具有文件大小限制、多文件上传等特性,但在本示例中并未详细展开。 在实际应用中,为了确保文件上传和下载的稳定性及安全性,还需要考虑以下几点: 1. 文件大小限制:根据服务器和数据库的性能设定上传文件的最大大小,防止过大文件导致系统崩溃。 2. 文件类型检查:验证上传的文件类型,防止恶意文件上传,如脚本文件。 3. 安全性:对上传的文件名进行编码,防止路径遍历攻击,同时在数据库中存储文件路径时,应避免直接使用绝对路径。 4. 错误处理:提供完善的错误处理机制,包括上传失败、下载失败等情况。 5. 性能优化:对于大量文件操作,可能需要考虑使用批处理或缓存策略,提高效率。 通过以上信息,我们可以了解到在Java环境下,使用Oracle数据库进行文件上传下载的基本步骤和注意事项,以及可以使用的相关工具。但实际开发中,还需结合具体业务需求和安全规范进行更深入的设计和实现。
文件下载使用的是:http://www.jspsmart.com的SmartUpload JAVA包,该包即可以文件上传,也可以文件下在,而且使用也比较方便,不过我在这里只使用文件从数据库下载功能,有兴趣的朋友可以试试。
下面我把使用这两个包的源CODE给大家说一下,以后大家碰道这些问题就不用象我一样发愁了,哎!多伟大的人呀!大家给点掌声安慰我这个受伤的孤独男人吧!
文件上传:
实际上这些JAVA包都有使用的例子,不过我还是要贴出来。
文件名:ChineseDatabaseUpload.jsp
文件内容:
<html>
<%@ page language="java" contentType="text/html; charset=gb2312" import="javazoom.upload.*,java.util.*" %>
<%@ page errorPage="ExceptionHandler.jsp" %>
<jsp:useBean id="upBean" scope="application" class="javazoom.upload.UploadBean" >
<%
Properties props = new Properties();
props.put("user","cepic");
props.put("password","lpsc");
upBean.setDatabasestore("oracle.jdbc.driver.OracleDriver","jdbc:oracle:thin:@10.231.234.252:1521:cepic",props); //数据库连接
%>
</jsp:useBean>
<head>
<title>中文上传</title>
<meta http-equiv="Content-Type" content="text/html; charset="gb2312">
<body bgcolor="#FFFFFF" text="#000000">
<ul><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<%
request.setCharacterEncoding("gb2312");
if (MultipartFormDataRequest.isMultipartFormData(request))
{
// Uses MultipartFormDataRequest to parse the HTTP request.
MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request,null,100*1024*1024,MultipartFormDataRequest.COSPARSER,"gb2312");
String todo = mrequest.getParameter("todo");
if ( (todo != null) && (todo.equalsIgnoreCase("upload")) )
{
Hashtable files = mrequest.getFiles();
if ( (files != null) || (!files.isEmpty()) )
{
UploadFile file = (UploadFile) files.get("uploadfile");
out.println("<li>Form field(表格栏): uploadfile"+"<BR> Uploaded file(已上传的文件名称): "+file.getFileName()+" ("+file.getFileSize()+" bytes)"+"<BR> Content Type(文件类别)"+file.getContentType());
//out.println("<li>Form field: uploadfile"+"<BR> Uploaded file: "+file.getFileName()+" ("+file.getFileSize()+" bytes)"+"<BR> Content Type"+file.getContentType());
// Uses the bean now to store specified by jsp:setProperty at the top.
upBean.store(mrequest, "uploadfile");
}
else
{
out.println("<li>No uploaded files");
}
out.println("<BR> gb2312 Text(简体) = "+mrequest.getParameter("gb2312txt"));
}
else out.println("<BR> todo="+todo);
}
剩余12页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BGP协议首选值(PrefVal)属性与模拟组网实验
- C#实现VS***单元测试coverage文件转xml工具
- NX二次开发:UF_DRF_ask_weld_symbol函数详解与应用
- 从机FIFO的Verilog代码实现分析
- C语言制作键盘反应力训练游戏源代码
- 简约风格毕业论文答辩演示模板
- Qt6 QML教程:动态创建与销毁对象的示例源码解析
- NX二次开发函数介绍:UF_DRF_count_text_substring
- 获取inspect.exe:Windows桌面元素查看与自动化工具
- C语言开发的大丰收游戏源代码及论文完整展示
- 掌握NX二次开发:UF_DRF_create_3pt_cline_fbolt函数应用指南
- MobaXterm:超越Xshell的远程连接利器
- 创新手绘粉笔效果在毕业答辩中的应用
- 学生管理系统源码压缩包下载
- 深入解析NX二次开发函数UF-DRF-create-3pt-cline-fcir
- LabVIEW用户登录管理程序:注册、密码、登录与安全