public ActionForward viewFile(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws BaseException {
String sano =request.getParameter("flag");
System.out.println("esno=" + sano);
// 查找附件
FilelistDAO _filelistDAO = new FilelistDAO();
List filelistList = _filelistDAO.findByProperty("Stockapply", sano);
// 有附件,则将附件填充到表单
if (filelistList != null) {
if (filelistList.size() > 0) {
try {
Filelist _fileList = (Filelist) filelistList.get(0);
String fileType = _fileList.getFlfilename().trim();
fileType = fileType.substring(fileType.indexOf(".") + 1);
System.out.println("fileName=" + findFileType(fileType));
response.setContentType(findFileType(fileType));
response.setHeader("Content-Disposition",
"attachment;filename=\""+ URLEncoder.encode(_fileList.getFlfilename().trim(),"UTF-8") + "\"");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setDateHeader("Expires",
(System.currentTimeMillis() + 1000));
SerializableBlob s_blob = (SerializableBlob) _fileList
.getFlfile();
java.sql.Blob wrapblob = s_blob.getWrappedBlob();
oracle.sql.BLOB blob = (oracle.sql.BLOB) wrapblob;
InputStream bis = blob.getBinaryStream();
OutputStream webOutStream = response.getOutputStream();
byte[] l_buffer = new byte[1024];
int l_nbytes = 0;
while ((l_nbytes = bis.read(l_buffer)) != -1) {
webOutStream.write(l_buffer, 0, l_nbytes);
}
bis.close();
webOutStream.flush();
webOutStream.close();
webOutStream = null;
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return mapping.findForward("");
}
分享到:
相关推荐
获取到BLOB对象后,将其转换为InputStream,再通过响应流将其发送给客户端,完成文件下载。 需要注意的是,由于提供的描述中提到“没有包,需要自己加包”,这意味着在实际开发过程中,你需要自行添加所需的依赖,...
1. **安装Instant Client**: 首先,你需要将下载的“instantclient_12_2”解压到一个适当的目录,并确保系统路径环境变量包含了这个目录,这样Navicat才能找到必要的OCI库文件。 2. **配置Navicat**: 打开Navicat,...
本文将详细讨论Oracle驱动包的各个版本及其下载相关知识。 首先,Oracle驱动包主要用于Java应用程序与Oracle数据库之间的通信,主要的驱动类型是JDBC(Java Database Connectivity)驱动。JDBC驱动分为四种类型:...
例如,限制文件大小以防止DoS攻击,对文件名进行清理以防止路径遍历漏洞,以及使用缓存和分块传输优化大文件下载速度。 总结一下,"jsp+js+oracle 实现文件上传数据库,下载到本地"涉及到的关键技术包括: 1. JSP...
Oracle 各版本的下载地址汇总 Oracle 是一款功能强大且广泛应用的关系型数据库管理系统,用于存储、管理和检索数据。 Oracle 数据库有多个版本,分别适用于不同的操作系统和架构。以下是 Oracle 各版本的下载地址...
1. **安装Oracle Instant Client**:首先,你需要下载并安装Oracle Instant Client。在提供的文件名"instantclient_11_2"中,我们可以看到这是Oracle 11.2版本的Instant Client。这个轻量级的客户端包含了运行 OCI ...
深入分析 Oracle 日志文件 Oracle 日志文件是 Oracle 数据库管理员 (DBA) 实现数据库恢复和追踪用户操作的重要工具。通过分析 Oracle 日志文件,可以追踪用户的恶意操作、恢复误删除的数据、执行事后审计等。Oracle...
本文汇总了Oracle 9i各个版本在不同操作系统下的下载链接,并提供了如何从Oracle官方网站获取下载链接的方法。Oracle 9i虽然已经是一个较旧的版本,但对于学习和研究Oracle数据库系统来说仍然具有一定的价值。希望...
第1步:下载 最新OCI文件最新的19.3版本oracle的OCI文件,兼容其下所有版本.zip 第2步:解压此安装包,并将解压到一个文件夹 myOci,随便一个D盘的吧 第3步:打开Navicat,选择工具选项其他OCI,选择浏览定位到...
下面将详细介绍与Oracle 11g R1相关的知识点,包括其特性、安装步骤以及使用百度云进行大文件下载时的一些注意事项。 ### Oracle 11g R1简介 Oracle 11g Release 1 (11.1) 是Oracle公司推出的一款关系型数据库管理...
oracle9i下载地址, 分三个IOS文件, 加压即可安装.
"从零开始Oracle200412222036361.pdf"这个文件很可能包含了这些基础知识的详细讲解,涵盖Oracle的安装、配置、基本操作以及常见问题的解决方法。通过系统地学习这个文档,初学者可以建立起对Oracle数据库的全面理解...
这个“oracle最新OCI文件.zip”包含了最新的Oracle OCI库和相关的开发文件,旨在确保与所有Oracle数据库版本的兼容性。 Oracle OCI提供了全面的API,用于执行SQL语句、处理游标、管理事务、处理数据库事件以及进行...
总的来说,"odt.rar_odt_oracle_oracle O_oracle ODT"中的内容可能是为了帮助开发者更高效地利用Oracle ODT进行数据库应用程序的开发,提供了一套从理论到实践的完整指南。通过学习和实践,开发者可以提升在Oracle...
Oracle数据库系统中,参数文件是配置数据库运行方式的关键组件,主要分为PFILE(初始化参数文件)和SPFILE(服务参数文件)。这两种类型的参数文件各有特点,适用于不同的管理和操作场景。 一、PFILE(初始化参数...
本文将详细介绍Oracle数据库的各种安装版本及其下载地址,适用于Windows XP、Linux和AIX等操作系统。 首先,Oracle Database 10g Release 2 (10.2.0.1.0) 是Oracle公司发布的一个重要版本,提供了针对不同平台的...
1. 下载这些JAR文件并将其放置在DBeaver的驱动库目录中,通常是`$DBeaver_HOME/plugins/org.jkiss.dbeaver.ext.oracle_*.dropins`路径下。 2. 在DBeaver中创建新的数据库连接,选择Oracle作为数据库类型。 3. 配置...
Oracle 11g控制文件全部丢失从零开始重建控制文件,如果丢失了所有的控制文件并且没有任何的备份,我们可以通过重建控制文件来打开数据库。其中,重建控制文件至少需要以下信息: 1.数据库名 2.字符集 3.数据文件...
在给定的“oracle11g-exp”文件中,重点涉及了Oracle数据库的数据导出和导入工具,即EXP(Export)和IMP(Import)。这两个实用程序是数据库管理员和开发人员日常工作中不可或缺的部分,主要用于数据迁移、备份和...