写个文件上传java代码

这段Java代码展示了一个HTTPServlet实现文件上传的功能,它接收POST请求,将上传的文件存储到服务器的uploadedFiles目录,如果目录不存在会自动创建。代码利用Servlet3.0的Part接口处理请求中的文件部分,并用java.nio.file.Files的copy方法保存文件。
摘要由CSDN通过智能技术生成

好的,这是一段用于上传文件的简单 Java 代码:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

public class FileUploadServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    private static final String UPLOAD_DIR = "uploadedFiles";

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // 获取上传文件的目录
        String uploadFilePath = request.getServletContext().getRealPath("") + File.separator + UPLOAD_DIR;

        // 如果目录不存在则创建
        File uploadFile = new File(uploadFilePath);
        if (!uploadFile.exists()) {
            uploadFile.mkdir();
        }

        // 解析请求的内容提取文件数据
        @SuppressWarnings("unchecked")
        List<Part> fileParts = (List<Part>) request.getParts();

        // 上传文件
        for (Part filePart : fileParts) {
            String fileName = filePart.getSubmittedFileName();
            if (fileName != null) {
                String filePath = uploadFilePath + File.separator + fileName;
                Path path = Paths.get(filePath);
                Files.copy(filePart.getInputStream(), path);
            }
        }
    }
}

这段代码演示了如何使用 HTTP POST 请求上传文件。

它将上传的文件存储在服务器的 "uploadedFiles" 目录中。如果该目录不存在,它会自动创建。

它使用了 Servlet 3.0 中的新特性 javax.servlet.http.Part 来解析请求内容,并使用 java.nio.file.Files 类的 copy 方法将上传的文件保存到服务器上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值