页面设置
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="uploadServlet" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</body>
</html>
下载servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class DownloadFilesServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("gbk");
String fileName=request.getParameter("fileName");
if(fileName!=null){
//创建下载控件
SmartUpload download=new SmartUpload();
//初始化
download.initialize(this.getServletConfig(), request, response);
//浏览器能识别的文件就使用浏览器打开(禁止浏览器打开下载文件)
download.setContentDisposition(null);
try {
download.downloadFile("/upload/"+fileName);
} catch (SmartUploadException e) {
e.printStackTrace();
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
上传servlet
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class UploadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("gbk");
//得到当前工程的upload文件夹的路径
String path=this.getServletContext().getRealPath("/upload");
//封装成文件
File uploadFilePath = new File(path);
//判断文件夹是否存在
if(!uploadFilePath.exists()){
//创建
uploadFilePath.mkdirs();
}
//第三方的一个上传控件
SmartUpload upload=new SmartUpload();
//初始化上传空间
upload.initialize(this.getServletConfig(), request, response);
//设置上传文件的大小为10M
upload.setMaxFileSize(1024*10*10);
//设置总的允许上传文件的大小(多文件上传)
upload.setTotalMaxFileSize(1024*10*10*2);
//设置允许上传的文件类型
upload.setAllowedFilesList("docx,doc,txt,jpg,gif");
try {
//上传文件
upload.upload();
//把上传的文件保存在当前工程的Upload文件夹下
upload.save("/upload");
} catch (SmartUploadException e) {
e.printStackTrace();
}
response.sendRedirect("downloadFileServlet");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
逻辑控制
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownloadFileServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("gbk");
String path=this.getServletContext().getRealPath("/upload");
File file=new File(path);
if(file.exists()){
String[] fileNames=file.list();
List<String> list=Arrays.asList(fileNames);
request.getSession().setAttribute("files", list);
response.sendRedirect("downloadFile.jsp");
}else{
response.sendRedirect("index.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}