利用jspSmartUpload组件,在JSP文件中添加三五行Java程序代码就可以实现文件的上传和下载,并可以进行全程控制,不管文件是否在web服务器的根目录下,并且可以将文件上传到数据库中,也可以下载数据库中的文件,但只是相对于mysql数据库,不具有通用性。

此组件主要有4个类:

File类,Files类,Request类,SmartUpload类。

File类:

这个类包含了上传文件的所有信息,通过它可以得到上传文件的文件名,文件大小,扩展名,以及文件数据等,他主要有以下几种用法:

1.saveAs()

用来将文件另存为一个文件,如文件的重命名。

FileObjectName.saveAs(String destFilePathName)

或者FileObjectName.saveAs(String destFilePathName,int saveAsOption)

FileObjectName是生成文件对象的名称,destFilePathName是另存的文件名。

saveAsOption是另存的选项,有PHYSICSL,VIRTUL,AUTO三个选项,第一个表示以操作系统根目录为文件根目录,第二个表示以应用程序的根目录为文件根目录,第三个表示让组件自行决定。

对于web程序来说,推荐使用第二个,便于移植。

2.isMissing()

用于判断用户是否选择了文件,即提交的表单对应表单项是否有值。调用方法如下:

FileObjectName.isMissing()

3.getFieldName()

得到HTML对应的表单项中上传文件的名字。

FileObjectName. getFieldName()

4.getFileName()

获取文件名,调用方法如下:

FileObjectName. getFileName()

5.getFilePathName()

获取文件中带目录的全名,调用方法如下:

FileObjectName. getFilePathName()

6.getFileExt()

获取文件的扩展名,调用方法如下:

FileObjectName. getFileExt()

7.getSize()

获取文件的长度,单位是字节,调用方法如下:

FileObjectName.getSize()

8.getBinaryData()

取文件中指定位移处的一个字节,用于检测文件处理,调用方法如下:

FileObjectName.getBinaryData(int index)

index表示位移,值在0和FileObjectName.getSize()-1之间。