Html表单 + JavaWeb实现上传文件

HTML代码

<!DOCTYPE html>
<html lang="zh_CN">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>上传文件</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            .aox {
                position: relative;
                margin: 150px auto;
                width: 500px;
                height: 300px;
                background-color: antiquewhite;
            }
            .aox .file {
                position: absolute;
                top: 50%;
                margin-top: -50px;
                left: 50%;
                margin-left: -120px;
                width: auto;
                height: auto;
                font-size: 18px;
            }
            .aox .submit {
                position: absolute;
                top: 50%;
                margin-top: 20px;
                left: 50%;
                margin-left: -110px;
                width: 200px;
                height: 35px;
                background-color: burlywood;
                outline: none;
                border: none;
            }
        </style>
    </head>
    <body>
        <div class="aox">
            <form action="UpLoadFileServlet" method="POST" enctype="multipart/form-data">
                <input type="file" class="file" name="file">
                <input type="submit" class="submit">
            </form>
        </div>
    </body>
</html>

注意事项

1.表单的提交方式必须为POST

2.在FORM表单内必须存在enctype=”multipart/form-data”这个属性,否则文件无法提交。

3.表单提交后,会将表单数据提交到UpLoadFileServlet这个Servlet中,这里可以替换为自己的Servlet。

Maven依赖

1.实现文件上传需要使用到commons-io.jarcommons-fileupload.jar这两个jar包,这里给出了相关的Maven依赖。

2.在导包时都是导入org.apache.commons.fileupload这个包中的接口和类。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>
    
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

实现文件上传的基本步骤

1.使用DiskFileItemFactory类创建工厂类,用来设置缓冲区和临时文件夹等。

2.使用ServletFileUpload类创建解析器,解析表单提交的字段数据等。

3.设置缓冲区大小、临时文件夹的路径和上传文件的保存路径。

4.使用解析器解析request对象,得到FileItem对象集合。

5.迭代集合内的FileItem对象,解析表单字段。

6.上传文件。

UpLoadFileServlet实现代码

《Html表单 + JavaWeb实现上传文件》

可以通过request.getSession().getServletContext().getRealPath(“filesName”)来获取并设置文件的路径。

项目模板

FileUpLoad

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注