Servlet 3.0之后提供了一个原生文件上传的方法
实现步骤
1、在jsp页面设置input框的属性
<div class="controls">
<input type="file" name = "img">
</div>
2、form表单中的属性设置
<form class="form-horizontal"
action="${pageContext.request.contextPath}/admin/article?cmd=add"
method="post"
enctype="multipart/form-data"
>
3、在对应的Servlet上添加@MultipartConfig注解
4、创建一个文件夹来做文件的相对路径
5、Servlet中的代码编写
//上传文件
Part part = request.getPart("img");
//判断是否有文件上传
if(part != null && part.getSize() > 0) {
//构建文件的保存路径
//文件名——》需要重命名
//获取文件名
String name = part.getHeader("content-disposition");
System.out.println("name" + name);
//获取后缀名
String exname = name.substring(name.lastIndexOf("."), name.length()-1);
//创建新文件名
String newname = UUID.randomUUID().toString() + exname;
System.out.println("newname" + newname);
//文件保存的相对路径(保存到数据库中的路径)
String savePath = "/file/" + newname;
//获取保存的绝对路径
String absPath = request.getServletContext().getRealPath(savePath);
System.out.println("absPath" + absPath);
//保存文件到绝对路径
part.write(absPath);
//保存到数据库(相对路径)
art.setArtimg(savePath);
}
总结
刚开始做文件上传自己也不熟,所以做了个笔记,按照笔记一步一步来实现功能,加油!!!