jsp使用jspSmartUpload实现多文件上传
jspSmartUpload的主要类:
File类
将文件换名另存:
public void saveAs(String destFilePathName)
public void saveAs(String destFilePathName, int optionSaveAs)
optionSaveAs是另存的选项,有三个值:SAVES_PHYSICAL, SAVES_VIRTUAL, SAVES_AUTO(当Web应用程序的根目录存在另存文件的目录是,它会选择SAVES_VIRTUAL)。
例如,saveAs("/upload/sample.zip", SAVES_PHYSICAL), 执行后若Web服务器安装在C盘,则另存的文件名实际为:C:\upload\sample.zip;而saveAs("/upload/sample.zip",SAVES_VIRTUAL),若web应用程序的根目录是webapps/jspsmartupload,则另存的文件名实际是webapps/jspsmartupload/upload/sample.zip.
public boolean isMissing():判断是否选择了文件
public String getFieldName():
取HTML表单中对应于此上传文件的表单项的名陈
public String getFileName():
取文件名(不含目录信息)
public String getFilePathName():
取文件全名(带目录)
public String getFileExt() :
取文件的扩展名(后缀)
public int getSize():取文件字长
Files类:所有上传文件的集合
public int getCount():
上传文件的数目
public File getFile(int index):
获取指定位移处的文件对象com.jspsmart.upload.File
public long getSize():
上传的总长度
public Collection getCollection():
将所有上传对象以Collection的形式返回
public Enumeration getEnumeration():
将所有上传文件对象以Enumeration的形式返回
Request类
文件上传表单,通过jsp页面的request对象无法获取表单项的值,只能通过jspSmartUpload组件提供的request对象来获取
public String getParameter(String name)
public String[] getParameterValues(String name)
public Enumeration getParameterNames()
SmartUpload类:完成上传和下载
共用的方法
public final void initialize(javax.servlet.jsp.PageContext pageContext):
初始化
public void upload():上传文件,上传文件前记得先初始化
public int save(String destPathName)将全部上传文件保存到指定目录下,并返回保存的文件个数
public int getSize():
获取上传文件数据的总长度
public Files getFiles():
取全部上传文件,以Files对象的形式返回
punlic Request getRequest():
取得Request对象
public void setAllowedFilesList(String allowedFilesList)
允许指定扩展名的文件上传,存在别的即异常
setAllowedFilesList("doc, txt,,") 将允许上传带doc和txt扩展名的文件以及没有扩展名的文件
public void setDeniedFilesList(String deniedFilesList)
禁止上传带有指定扩展名的文件,出现即异常
public void setMaxFileSize(long maxFileSize)
设置每个文件允许上传的最大长度
public void setTotalMaxFileSize(long totalMaxFileSize)
设置允许上传的文件的总长度
下载文件常用的方法:
public void setContentDisposition(String contentDisposition):组件返回下载的信息时自动填写MIME文件头的
content-Disposition域,如果为null,组件自动添加attachment;表明将下载的文件作为附件(也设定下载文件的打开方式)
public void downloadFile(String sourceFilePathName, sourceFilePathName, String contentType)
第二和第三个参数都是可选的,第一个是带目录的文件全名,第二个是内容类型,可以被浏览器识别的,第三个下载后默认的另存文件名
upload.html
<html>
<body>
<h>多文件上传</h>
<form method="post" action="/jspmartupload/jsp/sample.jsp" enctype="multipart/form-data>
<input type="file" name="file1" size="50"/><br/>
<input type="file" name="file2" size="50"/><br/>
<input type="file" name="file3" size="50"/><br/>
<input type="file" name="file4" size="50"/><br/>
<input type="submit" value="upload />
</form>
</body>
</html>
sample.jsp
<%@ page language="java" import = "com.jspsmart.upload.*" %>
<jsp:useBean id = "mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /><!-- 新建一个SmartUpload对象,并上传初始化-->
<HTML>
<body>
<%
int count = 0;
mySmartUpload.initialize(pageContext);
mySmartUpload.setTotalMaxFileSize(100000);
mySmartUpload.upload();
try {
count = mySmartUpload.save("/upload");
out.println(count + "file(s) uploaded.");
}catch (Exception e) {
out.println(e.toString());
}
%>
</body>
</HTML>