//文件上传
// 1. 获取Part对象 request.getPart("name"); name代表的是file文件域的name属性值
Part part = null;
try {
part = req.getPart("img");
// 2. 通过Part对象获取上传文件的文件名 (从头部信息中获取上传的文件名)
String header = part.getHeader("Content-Disposition"); //得到一个字符串 “ form-data:name="img"; filename="xx.ong"”
// 获取具体的请求头对应的值
String str = header.substring(header.lastIndexOf("=") + 2);// 去掉= 和" filename="filename.jpg"
// 获取上传的文件名
String fileName = str.substring(0, str.length() - 1); //去掉后面的引号;"form-data; name="fieldName"; filename="filename.jpg""
// 3. 判断文件名是否为空
if (!StrUtil.isBlank(fileName)) {
// 如果用户上传了头像,则更新用户对象中的头像
user.setHead(fileName);
// 4. 获取文件存放的路径 WEB-INF/upload/目录中
String filePath = req.getServletContext().getRealPath("/WEb-INF/upload/");
// 5. 上传文件到指定目录
part.write(filePath + "/" + fileName);
}
} catch (IOException e) {
e.printStackTrace();
}