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() : 
  取文件的扩展名(后缀)


取文件字长


 


Files类:所有上传文件的集合


 上传文件的数目


 获取指定位移处的文件对象com.jspsmart.upload.File


 上传的总长度


 将所有上传对象以Collection的形式返回


 将所有上传文件对象以Enumeration的形式返回



Request类


文件上传表单,通过jsp页面的request对象无法获取表单项的值,只能通过jspSmartUpload组件提供的request对象来获取

public String getParameter(String name) 

 

  public String[] getParameterValues(String name) 

 

  public Enumeration getParameterNames()


SmartUpload类:完成上传和下载


共用的方法


 初始化


public void upload():上传文件,上传文件前记得先初始化 

 

  public int save(String destPathName)将全部上传文件保存到指定目录下,并返回保存的文件个数

 获取上传文件数据的总长度


 取全部上传文件,以Files对象的形式返回


 取得Request对象


 允许指定扩展名的文件上传,存在别的即异常


setAllowedFilesList("doc, txt,,") 将允许上传带doc和txt扩展名的文件以及没有扩展名的文件


 禁止上传带有指定扩展名的文件,出现即异常


 设置每个文件允许上传的最大长度


 设置允许上传的文件的总长度




下载文件常用的方法:


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>