Java JSP如何从html输入将图像存储到数据库中

Java JSP如何从html输入将图像存储到数据库中,java,html,jsp,Java,Html,Jsp,我试图编写一个代码,将图像存储到数据库中,然后稍后使用rollnum从数据库中检索图像,并将其显示在网页上。我已经尽了我所能,但仍然不好,我尝试了阅读一些教程,但仍然不好,无论如何,这是我正在编写的代码。如果有人能帮忙,我将非常感激,提前谢谢 <%@page import="java.sql.*" %> <html> <head> <meta http-equiv="Content-Type" content="text/

我试图编写一个代码,将图像存储到数据库中,然后稍后使用rollnum从数据库中检索图像,并将其显示在网页上。我已经尽了我所能,但仍然不好,我尝试了阅读一些教程,但仍然不好,无论如何,这是我正在编写的代码。如果有人能帮忙,我将非常感激,提前谢谢

<%@page import="java.sql.*" %>            
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Registration Page</title>
    <style>
        body{
            background-image: url('bg.png');
            background-repeat: repeat;
            font-family: Courier New;
            margin:auto;
            width: 1000px;
        }            
        .wrap{
        margin-top:10px;
        border:solid 1px #000;
        height:900px;            
        }
        .header{
            font-size: 50px;
            font-weight: bold;
            font-family: Courier New; 
            text-align: center;

        }
        .border{
            border-bottom: solid 1px #000;
            margin-left: 30px;
            margin-right: 30px;
        }
        .box{
            border: solid 1px #000;
            padding: 8px;
            margin: 30px;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <table>
            <form method="post">
                <br/>                                  
                <tr>
                <td>&nbsp;&nbsp;Roll Number:</td> <td><input type="text" name="rollnum"/></td>
                </tr>
                </div>
                <tr>
                    <td>&nbsp;&nbsp;First Name:</td> <td><input type="text" name="fname"/></td>
                </tr>                     
                <tr>
                    <td>&nbsp;&nbsp;Last Name:</td> <td><input type="text" name="lname"/></td>
                </tr>                                         
                <tr>
                    <td>&nbsp;&nbsp;Course Name:</td> <td><input type="text" name="course"/></td>
                </tr>                                         
                <tr>
                    <td>&nbsp;&nbsp;Gender:</td> <td>Male:<input type="radio" name="gender" value="Male"/> Female:<input type="radio" name="gender" value="Female"/></td>
                </tr>                                         
                <tr>
                    <td>&nbsp;&nbsp;Address:</td> <td><input type="text" name="addr"/></td>
                </tr>                                                             
                <tr>
                    <td>&nbsp;&nbsp; State:</td> <td><input type="text" name="state"/></td>
                </tr>                                         
                <tr>
                    <td>&nbsp;&nbsp; Photo:<input type="file" name="photo"/></td>
                </tr>                                                             
                <tr>
                    <td>&nbsp;&nbsp;<input type="submit" value="Submit" name="submit"/></td>
                </tr>                                                             

            </form>
        </table>                        
        <%
            try{
            if(request.getParameter("submit") != null){
            Connection conn;
            PreparedStatement prep;    
            String sql;
            String url = "jdbc:derby://localhost:1527/reg";                                        
            Class.forName("org.apache.derby.jdbc.ClientDriver");                
            conn = DriverManager.getConnection(url,"uname","pass");                


            sql = 
                "insert into student (rollnum,fname,lname,course,gender,addr,state,photo)"
                +"values(?,?,?,?,?,?,?,?)";                                

            ResultSet rs = null;

            prep = conn.prepareStatement(sql);

            prep.setInt(1, Integer.parseInt(request.getParameter("rollnum")));
            prep.setString(2, request.getParameter("fname"));
            prep.setString(3, request.getParameter("lname"));
            prep.setString(4, request.getParameter("course"));
            prep.setString(5, request.getParameter("gender"));
            prep.setString(6, request.getParameter("addr"));
            prep.setString(7, request.getParameter("state"));                
            //prep.setString(8, request.getParameter("photo"));
            Blob blob = rs.getBlob(request.getParameter("photo"));;
            prep.setBlob(8, blob);                
            int n = prep.executeUpdate();
            if(n>0){                                    
        %>
        <div class="box">Registration Successful!! <b><a href="login.jsp">Login Now!!</a></b></div>
        <%
            }   
            }
            }

            catch(ClassNotFoundException e){

            }
            catch(NumberFormatException n){

            }
        %>
    </div>
</body>

你可以这样做:

获取图像 使用base64演示文稿转换图像 将base64存储到数据库中 需要图像时,请再次将base64转换为图像
为了帮助社区更好地回答您的问题,请描述您的期望是什么,您是如何测试的,并提供您看到的错误(如果有)。以下是所有实验的基本工作原理:您尝试一些东西,观察发生了什么,然后尝试改变一些事情,直到您观察到的是您想要实现的东西。由此推论,如果你不知道你想要实现什么,如果你不观察任何东西,你就无法进步。既然你没有说任何你想要实现的目标,也没有说任何你正在观察的东西,我们就无能为力了。我总是很惊讶,这里有一半的新手不理解这个基本原则。@JBNizet我编辑了这个问题,你现在能帮忙吗?你还没有告诉我你的观察结果。到底发生了什么?说它不起作用根本没用。@JBNizet,它根本不起作用