日期:2014-05-16 浏览次数:20465 次
项目要有一个上传下载的功能,以前都是用struts自带的。。这次准备用jspSmartUpload这个组件..现在还不知道怎么用..但是办法总是有的..
?
其实最好就是在网上找一个例子.直接用..谁知道在网上找了将近个把个小时竟然没有....唉。
?
jspSmartUpload组件中的主要类:
?
在jspSmartUpload组件中主要包含了File、Files、Request和SmartUpload核心类,下面对这些核心类进行介绍。
表13.1 File类中的常用方法
?
File类
该类不同于java.io.File类,在编写程序时应注意使用。File类用于保存单个上传文件的相关信息。如上传文件的文件名、文件大小、文件数据等,表13.1列出了File类中的常用方法。
?
? 方 法 |
? 说 明 |
? saveAs() |
? 用于保存文件 |
? isMissing() |
? 用于判断用户是否选择了文件,即表单中对应的<input type="file">标记实现的文件选择域中是否有值。该方法返回boolean型值,选择了文件时,返回False;否则返回True |
? getFieldName() |
? 获取Form表单中当前上传文件所对应的表单项的名称 |
? getFileName() |
? 获取文件的文件名,该文件名不包含目录 |
? getFilePathName() |
? 获取文件的文件全名,获取的值是一个包含目录的完整文件名 |
? getFileExt() |
? 获取文件的扩展名,即后缀名,不包含“.”符号 |
? getContentType() |
? 获取文件MIME类型,如“text/plain” |
? getContentString() |
? 获取文件的内容,返回值为String型 |
? getSize() |
? 获取文件的大小、单位字节,返回值为int型 |
? getBinaryData(int index) |
? 返回值为byte,获取文件数据中参数index指定位置处的一个字节,用于检测文件等处理 |
?
Files类中的saveAs()方法用于保存文件,在File类中提供了两种形式的saveAs()方法:
?
l saveAs(String destFilePathName)方法。
?
ll saveAs(String destFilePathName, int optionSaveAs)方法。
?
这两个方法没有返回值,第一种形式与saveAs(destFilePathName, 0)执行效果相同。
?
?
?
参数说明
?
l destFilePathName:指定文件保存的路径,包括文件名。其值应以“/”开头。
?
l optionSaveAs:保存目标选项。该选项有3个值,分别是SAVEAS_AUTO、SAVEAS_ VIRTUAL和SAVEAS_PHYSICAL。它们是File类中的静态字段,分别表示整数0、1和2。将optionSaveAs参数设为SAVEAS_VIRTUAL选项值,则通知jspSmartUpload组件以Web应用的根目录为文件根目录,然后加上destFilePathName参数指定的路径来保存文件;设为SAVEAS_PHYSICAL值,则一种情况是通知jspSmartUpload组件将以Web服务器的安装路径中的磁盘根目录为文件根目录,然后加上destFilePathName参数指定的路径来保存文件,另一种情况则以destFilePathName参数指定的目录为最终目录来保存文件;设为SAVEAS_AUTO值,则首先以SAVEAS_VIRTUAL方式来保存文件,若Web应用下由destFilePathName参数指定的路径不存在,则以SAVEAS_PHYSICAL方式保存文件。
例如,若Web服务器(以Tomcat为例)的安装目录为“E:\Tomcat 5.5”,当前Web应用为“FileUpDown”,下面分别应用这3个选项保存文件。
?
(1)使用SAVEAS_VIRTUAL选项值。
?
saveAs("/file/myfile.txt",File.SAVEAS_VIRTUAL)或saveAs("/file/myfile.txt",1)
?
若FileUpDown应用下存在“file”子目录,则将上传的文件以“myfile.txt”为文件名进行保存,实际的保存路径如下:
?
E:\Tomcat 5.5\webapps\FileUpDown\file\myfile.txt
?
若不存在“file”子目录,则抛出下面的异常:
?
This path does not exist (1135)
?
(2)使用SAVEAS_PHYSICAL选项值。
?
saveAs("/file/myfile.txt",File.SAVEAS_PHYSICAL)或saveAs("/file/myfile.txt",2)
?
因为Tomcat 5.5安装在E盘,因此若E盘根目录下存在“file”子目录,则将上传的文件以“myfile.txt”为文件名进行保存,实际的保存路径如下:
?
E:\file\myfile.txt
?
若E盘根目录下不存在“file”子目录,而FileUpDown应用的根目录下存在“file”子目录,则抛出下面的异常:
?
The path is not a physical path
?
否则抛出下面的异常:
?
This path does not exist (1135)
?
使用SAVEAS_PHYSICAL选项值时,可以将上传的文件保存到由destFilePathName参数指定的一个具体的目录下,例如:
?
saveAs("D:/temp/myfile.txt",File.SAVEAS_PHYSICAL)
?
最终文件的实际保存路径如下:
?
D:\temp