在 Java Web 开发中,使用 HttpServletRequest 获取上传文件通常需要使用 javax.servlet.http.Part 类。但如果你的项目没有导入该类,或者你只需要获取 File 对象而不需要保存文件,可以使用 request.getInputStream() 获取上传文件的内容并将其转换为 java.io.File 对象。

以下是一个示例代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        InputStream inputStream = request.getInputStream();
        File file = null;
        try {
            file = File.createTempFile('uploadedFile', '.tmp');
            OutputStream outputStream = new FileOutputStream(file);
            byte[] buffer = new byte[4096];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            outputStream.flush();
            outputStream.close();
        } finally {
            if (inputStream != null) {
                inputStream.close();
            }
        }
        
        // 在这里可以使用file对象进行其它操作
    }
}

在上述示例中,doPost 方法从 HttpServletRequest 对象中获取输入流 inputStream,然后将其内容写入一个临时文件 file 中。你可以根据自己的需求进行进一步处理。请注意,在处理完文件后,需要在适当的时候删除临时文件,以免占用过多的磁盘空间。

Java HttpServletRequest 获取上传文件,无需保存文件(不使用 Part 类)

原文地址: https://www.cveoy.top/t/topic/qkxw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录