jsp中的文件上传与下载

首先介绍下上传表单的要求:

method必须使用"post";enctype="multipart/form-data";

JSP中使用组件上传

SmartUpload su = new SmartUpload(); // 新建一个SmartUpload对象

su.initialize(pageContext); // 上传初始化

设定上传限制
su.setMaxFileSize(10000); //限制每个上传文件的最大长度。
su.setTotalMaxFileSize(20000); //限制总上传数据的长度
su.setAllowedFilesList(“doc,txt”); //设定允许上传的文件(通过扩展名限制)
su.setDeniedFilesList(“exe,bat,jsp,htm,html,,”); // 4.设定禁止上传的文件(禁止上传扩展名exe,bat,jsp,htm,html和没扩展名的文件)

su.upload(); //上传文件

int count = su.save(“/upload”); // 将上传文件全部保存到指定目录,返回上传成功的文件个数

但是鉴于在以后的开发过程中大多都会使用开发模式所以一般不是与jsp直接进行交互会通过servlet,所以在这里重点说下servlt中的文件上传 

Servlet中使用组件上传
实例化: SmartUpload su = new SmartUpload();
初始化:su.initialize(this.getServletConfig(),request,response);
上传

保存

当然也会遇到多文件的上传

其实它和单文件上传的大部分是一致的,但是在保存的时候会使用循环来接收

for (int i=0;i<su.getFiles().getCount();i++){

File file = su.getFiles().getFile(i);

If(!file.isMissing()){

  file.saveAs(“/upload/”+file.getFileName())

}}

 

文件下载

初始化
实例化
su.setContentDisposition(null);
  设定contentDispositionnull以禁止浏览器自动打开文件,保证点击链接后是下载文件。若不设定,则下载的文件扩展名为doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开
下载文件:su.downloadFile("/upload/"+fileName);