java web 图片上传

文件图片的上传需要用到commons-fileupload-1.4.jar和commons-io-2.6.jar两个包 数据库值保存的是图片的路径实际图片在项目中

在这里插入图片描述

在这里插入图片描述

实体类

public class User {
        private int id;
        private String name;
        private String imgurl;

        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getImgurl() {
            return imgurl;
        }
        public void setImgurl(String imgurl) {
            this.imgurl = imgurl;
        }

    }

DBUtils

package JDBC;

import java.sql.*;

public class DBUtils {
    //连接数据库--获取连接
    public static Connection getConn(){

        //MySQL8.0
        //  String driverName = "com.mysql.cj.jdbc.Driver";
        //  String url = "jdbc:mysql://localhost:3306/test_demo?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
        //MySQL5.0
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password = "root";

        Connection conn = null;
        try {
            //1.加载(注册)JDBC驱动
            Class.forName(driverName);
            //2.获取链接
            conn = DriverManager.getConnection(url, user, password);//连接对象(缆绳)
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return conn;

    }
    //连接数据库--释放资源
    public static void closeAll(ResultSet rs, Statement stmt, Connection conn){
        try {
            if(rs != null) {
                rs.close();
            }
            if(stmt != null) {
                stmt.close();

            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}


Dao

public class Userdao {
    //添加图片
    public static boolean addUser(User user){
        boolean flag=false;
        Connection conn = DBUtils.getConn();
        PreparedStatement ptmt = null;
        String sql="insert into tup(name,url) values(?,?)";

        try {
            ptmt=conn.prepareStatement(sql);
            ptmt.setString(1,user.getName());
            ptmt.setString(2,user.getImgurl());
            int a = ptmt.executeUpdate();
            if (a != 0){
                flag = true;
            }
            DBUtils.closeAll(null, ptmt, conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return flag;
    }
    //显示图片
    public static List<User> findAll() {
        List<User> list =new ArrayList<User>();
        String sql="select * from tup";
        Connection conn = DBUtils.getConn();
        PreparedStatement ptmt = null;
        try {
            ptmt= conn.prepareStatement(sql);
            ResultSet rs=ptmt.executeQuery();
            while(rs.next()){
                User u=new User();
                u.setId(rs.getInt(1));
                u.setName(rs.getString(2));
                u.setImgurl(rs.getString(3));
                list.add(u);
            }

            DBUtils.closeAll(rs, ptmt, conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }


        return list;

    }


}

Servlet 上传图片 保存图片的绝对路径

@WebServlet(name = "InertmServlet",urlPatterns="/Inertm")
//没有@则无法处理parts
@MultipartConfig
public class InertmServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        //给定路径在web下创建imags文件夹
        String path = request.getServletContext().getRealPath("\\images");
        System.out.println(path);
        //获取一个文件或图片
        Part part = request.getPart("upload");
		//获取文件名字
        String fname = part.getSubmittedFileName();
		 //通过文件的名字获得文件类型取.后面
        String suffix = fname.substring(fname.lastIndexOf("."));
        //UUID类可得到随机文件名字加上文件类型
        fname = UUID.randomUUID()+suffix;
        //加载到指定位置 将随机名字的图片加载到images指定为位置
        part.write(path + File.separator + fname);
		//获得网页名字
        String name = request.getParameter("user");
      //创建实例类
        User user =new User();
        user.setName(name);
        user.setImgurl(fname);
       //调用dao类判断
        boolean f = Userdao.addUser(user);
        if (f){
            out.println("<h3 align=center>添加成功</h3>");
            out.println("<h3 align=center><a href='xian.jsp'>查看用户列表</a></h3>");
        }else {
            out.println("添加失败");
            out.println("<h3 align=center><a href='xian.jsp'>查看用户列表</a></h3>");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

网页
上传界面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
<form action="Inertm"  method="post" enctype="multipart/form-data" >
    名称:<input type="text" id="user" name="user"><br>
    图片:<input class="fileInput" id="file" type="file" name="upload" />
    <input type="submit" value="提交" />
</form>

</body>
</html>

显示界面

<%@ page import="pojo.Userdao" %>
<%@ page import="pojo.User" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2020/12/17
  Time: 14:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>显示</title>
</head>
<body>
<%
    Userdao dao = new Userdao();
    List<User> list=dao.findAll();
%>
<table border="1">
    <tr>
        <td>名称</td>
        <td>图片</td>
    </tr>
    <%
        for(User u:list){
    %>
    <tr>
        <td><%=u.getName()%></td>
        <td><img  style="width:50px;height:50px"  src="images/<%=u.getImgurl()%>"></img></td>
    </tr>
    <% }%>
</table>
</body>
</html>

数据库类型
在这里插入图片描述

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值