DiskFileItemFactory factory = new DiskFileItemFactory();
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
// 是否是附件上传文件
boolean multipartContent = ServletFileUpload
.isMultipartContent(request);
if (!multipartContent) {
System.out.println("普通文件上传");
return;
}
try {
List<FileItem> parseRequest = upload.parseRequest(request);
if (parseRequest != null) {
for (FileItem fileItem : parseRequest) {
// 判断fileItem是不是普通输入内容
if (fileItem.isFormField()) {
String fieldName = fileItem.getFieldName();
// 获得内容并防止乱码
String value = fileItem.getString("utf-8");
System.out.println("普通数据" + fieldName + value);
} else {
// 获得上传文件域中的内容
// 获得文件名
String fileName = fileItem.getName();
System.out.println("文件名" + fileName);
// 浏览器客户端上传的文件名是不一样的
String substring = fileName.substring(fileName
.lastIndexOf("\\") + 1);
System.out.println(substring);
// 读写操作 读客户端的数据 写入到服务器内
// 获取fileItem中文件的的输入流
InputStream in = fileItem.getInputStream();
in.close();
//fileOutputStream.close();
fileItem.delete();
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
servlet解析formData,获取到文件流
最新推荐文章于 2023-03-10 11:36:13 发布