主题:使用JAVA读取ORACLE BLOB字段实现上传下载
作者:蔡毅(caiyi0903@hotmail.com)
时间:2005-6-22
一 BLOB概述
大对象类型BLOB全称为Binary Large Objects,即二进制大对象。可以把BLOB区别为三种形式:声像数据、二进制数据和大文本数据。因此,最常见的应用就是存储图形、声音等对象,此外大二进制对象、OLE对象也可以通过BLOB类型存入数据库,如果文本对象过大,超出了文本类型的规定长度,则必须用BLOB字段进行存储。我们在经常使用的编程环境中并不能直接支持BLOB字段,因此需要调用相应的函数完成BLOB的使用。
二 实际Struts项目的处理流程
1 插入BLOB字段的流程
表示层:
上传使用struts的<html:file property="drawingFile"/>标签,提交给指定处理的Action,在ActionForm中使用struts自带的FormFile
来保存文件。
核心代码:
<html:form action="/DrawingInputMultiAction" enctype="multipart/form-data">
<html:file property="drawingFile"/>
....省略
</html:form>
控制层:
在Action中将传入的ActionForm中的文件字段赋给VO值对象,并调用业务代理类的上传方法。
核心代码:
//新增
if(actionType.equals("insert")) {
//得到文件类型
int iFileType = this.getFileType(drawingInputForm.getFileExtendName());
if(iFileType == 0) {
//不支持文件类型
this.addError(request, "drawing.errors.upload.UnSupportedFileType");
} else {
DrawingVO objDrawingVO = new DrawingVO();
//图纸基本属性
objDrawingVO.setDrawingName(drawingInputForm.getDrawingName());
...省略其他set方法
//执行新增(上