跟着狂神的代码看一天了,泪目,我终于成功了!特此记录~
我的环境:IDEA 2020,Tomcat 9.0.24,Maven 3.8.1
(环境其实要求应该没那么严,我跟狂神的也不完全一样~)
视频链接:文件上传(P38 + P39)
想要直接下载代码的来这:gitee仓库
写在前面!!项目搭建一定要仔细,写代码也要非常细心,狂神老师有的,我有时候没有,所以建项目流程并没有完全跟老师一样,所以刚开始报了500错误,后来,虽然显示上传成功,但是我不知道文件上传到哪里了,找不到…(老师的有,就很离谱咯)
经过无数次的删除重建,功夫不负有心人,我终于成功了!😊
1、文件上传准备
-
IDEA中建个空项目,在其中new一个模块file
-
采用apache的开源工具common-fileupload文件上传组件
-
common-fileupload依赖于commin-io这个jar包
-
直接去Maven仓库搜索、下载即可!
-
模块中新建lib目录,把两个包复制过去,右键add as Library即可~
重点!!!
1、ServletFileUpload:负责处理上传的文件数据,并将表单中每个输入项封装成一个FileItem对象2、在使用ServletFileUpload对象解析请求时需要DiskFileItemFactory对象
3、所以,我们需要在进行解析工作前构造好DiskFileItemFactory对象,通过ServletFileUpload对象的构造方法或setFileItemFactory()方法设置ServletFileUpload对象的FileItemFactory属性
2、正戏开始
1、IDEA中建个空项目,里面建个maven项目(file),添加webapp支持
2、在file中建个lib文件夹,把fileupload和common-io的jar包拉进去,Add as Library,不行的话在结构导入也可以!
编写代码!
<%--index.jsp--%>
<%@page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$upload-file$</title>
</head>
<body>
<%--index.jsp--%>
<%--通过白哦但上传文件
get:上传文件大小有限制
post:无限制
--%>
<form action="${pageContext.request.contextPath}/upload.do" enctype="multipart/form-data" method="post">
上传用户:<input type="text" name="username"><br/>
上传文件1:<input type="file" name="file1"><br/>
上传文件2:<input type="file" name="file2"><br/>
<p><input type="submit" value="提交"> | <input type="reset" name="重置"></p>
</form>
</body>
</html>
<%--info.jsp--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${msg}
</body>
</html>
<!--pom.xml-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<!--web.xml-->
<!--注册文件上传的servlet-->
<servlet>
<servlet-name>FileServlet</servlet-name>
<servlet-class>com.xiao.servlet.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>/upload.do</url-patt