当前位置:首页 > 行业动态 > 正文

Java实现服务器文件上传和保存操作 (java 保存上传 文件到服务器)

解析

在Java中,我们可以使用Servlet和JSP来实现服务器文件上传和保存操作,具体步骤如下:

1、创建一个HTML表单,用于用户选择要上传的文件。

2、创建一个Servlet,用于处理文件上传请求。

3、在Servlet中,获取上传的文件,并将其保存到服务器的指定目录。

4、创建一个JSP页面,用于显示文件上传成功的信息。

代码实现

1、创建HTML表单(upload.html)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF8">
    <title>文件上传</title>
</head>
<body>
    <form action="UploadServlet" method="post" enctype="multipart/formdata">
        选择文件:<input type="file" name="file">
        <input type="submit" value="上传">
    </form>
</body>
</html>

2、创建Servlet(UploadServlet.java)

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
@WebServlet("/UploadServlet")
@MultipartConfig(maxFileSize = 16177215) // 设置上传文件的最大大小(单位:字节)
public class UploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            // 配置上传参数
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setSizeMax(10 1024 * 1024); // 设置上传文件的最大大小(单位字节)
            upload.setHeaderEncoding("UTF8"); // 设置编码格式
            List<FileItem> items = upload.parseRequest(request); // 解析请求的内容提取文件数据
            for (FileItem item : items) {
                if (!item.isFormField()) { // 如果项目不是普通字段(即:文件),则处理该文件数据
                    String fileName = item.getName(); // 获取文件名(不包括路径)
                    String filePath = "D:/upload"; // 设置文件保存的路径(根据实际情况修改)
                    File storeFile = new File(filePath + File.separator + fileName); // 根据路径、文件名生成完整的文件对象
                    item.write(storeFile); // 将上传的文件保存到指定的路径
                }
            }
            request.setAttribute("message", "文件上传成功!"); // 设置属性,用于在JSP页面显示提示信息
        } catch (Exception e) {
            request.setAttribute("message", "文件上传失败:" + e.getMessage()); // 设置属性,用于在JSP页面显示提示信息
        } finally {
            request.getRequestDispatcher("/result.jsp").forward(request, response); // 转发请求到结果页面(result.jsp)
        }
    }
}

3、创建JSP页面(result.jsp)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF8">
    <title>文件上传结果</title>
</head>
<body>
    <h2>文件上传结果:${message}</h2> // 显示提示信息(从request属性中获取)
</body>
</html>
0