文件传输
1、项目部署
-
创建一个空的项目
-
新建一个web模块
-
导入servlet
2、前端页面
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<%--
GET:上传文件大小有限制
POST:上传文件大小没有限制
${pageContext.request.contextPath}
--%>
<form action="upload.do" enctype="multipart/form-data" method="post">
上传用户:<input type="text" name="username"><br/>
<P><input type="file" name="file1"></P>
<P><input type="file" name="file1"></P>
<P><input type="submit" value="提交"> | <input type="reset"></P>
</form>
</body>
</html>
info.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%=request.getAttribute("msg")%>
</body>
</html>
3、文件传输核心类代码解析
1、判断上传的文件是否为文件表单
if (!ServletFileUpload.isMultipartContent(request)) {
return;//终止方法运行,说明这是一个普通的表单,直接返回
}
2、创建一个上传文件的路径
建议是在WEB-INF路径下,用户无法直接访问上传的文件,注意,一般会有一个临时储存文件的路径,它的作用就是在文件较大时,会有期限去处理掉,释放空间
//创建上传文件的保存路径,建议在WEB-INF路径下,安全,用户无法直接访间上传的文件;
String uploadPath =this.getServletContext().getRealPath("/WEB-INF/upload");
File uploadFile = new File(uploadPath);
if (!uploadFile.exists()){
uploadFile.mkdir(); //创建这个月录
}
// 创建上传文件的保存路径,建议在WEB-INF路径下,安全,用户无法直接访问上传的文件
String tmpPath = this.getServletContext().getRealPath("/WEB-INF/tmp");
File file = new File(tmpPath);
if (!file.exists()) {
file.mkdir(