利用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之间。