文件上传(JavaWeb 狂神笔记)

本文记录了作者在跟随狂神学习JavaWeb文件上传过程中遇到的问题与解决过程。文章详细介绍了如何配置环境,使用Apache的common-fileupload组件进行文件上传,并提醒读者在项目搭建和代码编写时需要注意的细节。最终,作者成功实现了文件上传并找到了上传后的文件位置。
摘要由CSDN通过智能技术生成

跟着狂神的代码看一天了,泪目,我终于成功了!特此记录~
我的环境: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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值