Servlet实现文件上传

定义

  在Servlet3.0之前实现文件上传需要借助Apache的上传组件,在3.0中,提供了一个Servlet API标准去支持文件上传。

上传前置

  表单页面设置

  1. 设置enctype属性格式为multipart/form-data
  2. .method必须为post

Servlet文件上传步骤

  1.声明@MultipartConfig注解 提供支持和处理

  2.Part 获取文件

//获取多个文件
Collection parts = req.getParts();
//获取指定文件
Part uploadFile = req.getPart("uploadFile");

3.设置文件上传路径——获取web上下文的根路径下,新建一个文件夹

 String upload = req.getServletContext().getRealPath("upload");  ||
 String upload1 = req.getServletContext().getRealPath("/") + "upload";    

4.获取文件的名称,解决文件名称相同的问题——给文件重命名

//利用当前时间的毫秒数加三位随机数给文件重命名
 Random random=new Random();
 long rename=System.currentTimeMillis()+ random.nextInt(1000)
 
//获取文件类型并进行分割
String type=uploadFile.getContextType();
String fileType=type.substring(type.lastIndexOf("."));

 //拼接重命名名称

 String fileName=rename+fileType;

5.文件.write(path) 将文件输出到指定路径中。

String path = upload + File.separator + fileName;
part.write(path);

你可能感兴趣的:(Servlet,java,Web,数据编程,servlet,java,服务器)