public void fileUpLoad(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 使用FileUpload实现文件的上传
// 判断请求是否是文件上传的表单
boolean multipartContent = ServletFileUpload.isMultipartContent(request);
if (!multipartContent) {// 如果不是文件上传的表单,直接结束
return;
}
// 处理
// 创建磁盘工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置临时文件夹的路径
// factory.setRepository(new File("/temp"));//设置临时文件夹的路径
// 创建处理工具
ServletFileUpload fileUpload = new ServletFileUpload(factory);
// 设置一些参数
fileUpload.setSizeMax(1024000);// 设置一次上传的文件的总大小
fileUpload.setFileSizeMax(102400);// 设置单个文件的最大大小
try {
// 解析request 解析之后返回一个List。 FileIte表示表单域中的每一个域
List itemList = fileUpload.parseRequest(request);
// 遍历:
for (FileItem item : itemList) {
if (item.isFormField()) {// 是否是表单的普通域
// 从item中取出对应的数据
// 普通域的name属性
String fieldName = item.getFieldName();
// 普通域的value
String value = item.getString();
System.out.println(fieldName + “:” + value);
} else { // 文件域
// 读取上传的文件的名称
String fileName = item.getName();
System.out.println(“文件的名称:” + fileName);
// 取出文件后缀
String ext = fileName.substring(fileName.lastIndexOf("."));
// 将文件写到目标文件中
// 生成文件名
String fname = System.currentTimeMillis() + “_” + (new Random().nextInt(90) + 10) + ext;
// 创建目标文件
String targetFilePath = this.getServletContext().getRealPath("/uploadfile/" + fname);
// 将文件写入目标文件
try {
item.write(new File(targetFilePath));// 将临时文件拷贝到目标文件
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
使用FileUpload实现文件的上传
最新推荐文章于 2022-05-10 17:18:24 发布