java文件上传操作 前后端操作 0525

文件上传的包

在这里插入图片描述

java 文件上传 34fa38cbedfc4c778184253808b2e65a

前端要求

java文件上传操作 前后端操作 0525_第1张图片

  1. form标签要有enctype属性,参数如图所示
  2. 控件使用file类型 要给他起名字

笔记

java文件上传操作 前后端操作 0525_第2张图片

后端要求

java文件上传操作 前后端操作 0525_第3张图片

完整代码

<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
<%@ page import="org.apache.commons.fileupload.FileItemFactory" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@ page import="java.util.List" %>
<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="java.io.File" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/6/5
  Time: 11:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    // 获取一个布尔值,看这个请求是不是一个传送表单数据的请求
    boolean flag = ServletFileUpload.isMultipartContent(request);

    // 构建文件上传的路径
    String uploadDir = session.getServletContext().getRealPath("/upload");
    File ud = new File(uploadDir);
    // 判断是否存在
    if (!ud.exists()) {
        boolean b1 = ud.mkdir();
        if (b1) {
            out.print("创建上传目录成功:" + uploadDir);
            out.print("
"
); } } else { out.print("上传目录已经准备就绪"); out.print("
"
); } // 验证这个请求 if (flag) { // 获取处理的对象 // 文件元素对象 FileItemFactory fif = new DiskFileItemFactory(); // 文件上传对象 ServletFileUpload sfu = new ServletFileUpload(fif); // 上传对象解释我们的请求 List<FileItem> fileItemList = sfu.parseRequest(request); // 遍历这个范型集合 for (FileItem item : fileItemList ) { // 判断这个元素是不是基本表单控件 if (item.isFormField()) { // 如果是的,那么可以得到表单的控件的name与value值 String name = item.getFieldName(); String value = item.getString("utf-8"); out.print("name的值:" + name); out.print("
"
); out.print("value的值:" + value); out.print("
"
); } else { // 如果不是普通的表单控件,那就是文件上传了 // 新建一个File对象,需要先获取文件名称 byte[] gbks = item.getName().getBytes("GBK"); String name = new String(gbks, "UTF-8"); out.print("文件名称:" + name); out.print("
"
); // 保存文件 File targetFile = new File(uploadDir, name); // 元素写入数据到文件中 item.write(targetFile); // 提示成功 out.print("写文件成功,存放路径:" + targetFile.getAbsolutePath()); out.print("
"
); } } } %> </body> </html>

你可能感兴趣的:(学习)