Java可以通过以下步骤实现文件上传功能:
以下是一个简单的示例代码:
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取上传的文件
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
// 指定上传文件保存的路径
String savePath = "C:/uploads/" + fileName;
// 将上传文件保存到服务器指定路径
try (InputStream inputStream = filePart.getInputStream();
FileOutputStream outputStream = new FileOutputStream(savePath)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException ex) {
// 处理上传文件保存失败的异常
}
// 处理文件上传完成后的逻辑
response.getWriter().println("文件上传成功!");
}
}
在上述示例中,通过@WebServlet注解将Servlet映射到"/upload"路径,当用户提交包含文件的表单时,请求会被转发到该Servlet处理。在doPost()方法中,首先通过HttpServletRequest的getPart()方法获取上传的文件部分,然后使用Part对象的getSubmittedFileName()方法获取上传文件的文件名。接下来,将上传的文件保存到服务器指定路径,最后返回上传成功消息给用户。