使用jspsmartupload.jar工具包,来通过jsp上传Excel文件。
upload.jsp 代码:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<title></title>
<script type="text/javascript">
function check_upload(theform)
{
var filename = document.getElementById("filename").value;
if(filename == "" ||filename == null || filename.indexOf(".xls")==-1){
alert('只能上传.xls文件');
return false;
}
}
</script>
<body>
<form action="upload_impl.jsp" enctype="multipart/form-data" method="post" οnsubmit="return check_upload(this)">
<input type="file" id="filename" name="photo" />
<input type="submit" value="上传"/>
</form>
</body>
upload_impl.jsp 上传处理代码:
<%@ page contentType="text/html; charset=gbk"
import="java.util.*,com.jspsmart.upload.*"%>
<html>
<head>
<title>文件上传处理页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
</head>
<body>
<%
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
// su.setMaxFileSize(10000);
// 2.限制总上传数据的长度。
// su.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
su.setAllowedFilesList("xls");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有
//扩展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件
su.upload();
// 将上传文件全部保存到指定目录,需要先在在Web应用的根目录下,创建一个upload目录
int count = su.save("/upload");
//out.println("<script type=\"text/javascript\"> alert('上传成功,请入库..'); </script>");
// 逐一提取上传文件信息,同时可保存文件。
for (int i = 0; i < su.getFiles().getCount(); i++) {
com.jspsmart.upload.File file = su.getFiles().getFile(i);
//修改上传文件名
file.saveAs("/upload/1.xls");
// 若文件不存在则继续
if (file.isMissing())
continue;
// 显示当前文件信息
out.println("上传成功!!<br/>");
out.println("请点击当前菜单下的入库菜单,选择当前上传文件对应数据库的表,进行入库,否则可能入库失败!!<br/>注意:再次入库其他Excel数据,必须先上传Excel文件,再入库!! ");
// 将文件另存
// file.saveAs("/upload/" + myFile.getFileName());
// 另存到以WEB应用程序的根目录为文件根目录的目录下
// file.saveAs("/upload/" + myFile.getFileName(),su.SAVE_VIRTUAL);
// 另存到操作系统的根目录为文件根目录的目录下
// file.saveAs("c:\\temp\\" + myFile.getFileName(),su.SAVE_PHYSICAL);
}
%>
</body>
</html>