文件上传很简单,几步轻松搞定:
1.将jsmartcom_zh_CN.jar包导入到项目的WEB-INF文件路径下的lib中。
2.在index.jsp页面中编写页面:
<body>
<form action="doUpload.jsp" method="post" enctype="multipart/form-data">
上传文件<input type="file" name="file"><input type="submit" value="上传文件">
</form>
</body>
3.在处理页面doUpload.jsp页面写东西:
注意第一行,将jsmartcom_zh_CN.jar中的包com.jspsmart.upload导入。
<%@ page language="java" import="java.util.*,com.jspsmart.upload.*" pageEncoding="utf-8"%>
<%@page import="javax.print.DocFlavor.STRING"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
SmartUpload upload=new SmartUpload();
//初始化
upload.initialize(this.getServletConfig(),request,response);
//开始上传
upload.upload();
//获得所有上传文件
Files files=upload.getFiles();
//获得第一个上传文件
File file=files.getFile(0);
//安全验证,获得文件的扩展名
String ext=file.getFileExt();
if("exe".equals(ext)){
out.write("<script>alert('exe文件不允许上传');location.href='index.jsp'</script>");
}else{
//文件大小
int size=file.getSize();//字节
System.out.println(size+"---"+file.getFileName());
file.saveAs("upload/"+file.getFileName());
}
%>
最后就是注意上传乱码问题:
1、第一类乱码:
解决方法:将传送的JSP页面(即含有表单的页面)的页面编码方式改为:
<%@ page contentType="text/html; charset=GB2312" language="java"import="java.sql.*" errorPage="" %>
<meta http-equiv="Content-Type"content="text/html; charset=GB2312"/>
2、第二类乱码:
解决方法:
在
加上
放在
之前。