Java HttpServletRequest 获取上传文件,无需保存文件(不使用 Part 类)
在 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 中。你可以根据自己的需求进行进一步处理。请注意,在处理完文件后,需要在适当的时候删除临时文件,以免占用过多的磁盘空间。
原文地址: https://www.cveoy.top/t/topic/qkxw 著作权归作者所有。请勿转载和采集!