允许用户将图像插入数据库

时间:2017-05-20 18:00:43

标签: html mysql database jsp

所以我一直在为一个想象中的飞行公司建立一个数据库。我应该有一个JSP页面,允许管理员输入数据,如航班号,航班模型,容量,座位布局等数据库。我设法允许管理员将数据(例如航班模型和号码)输入数据库。但是,我不知道如何让管理员将座位布局的图像添加到数据库中。更具体地说,我需要让管理员浏览他们的计算机并将图像文件从他们的计算机上传到我的数据库中,并将其存储在那里,以便每当用户搜索特定的飞机模式时,例如波音747,座位的图像将返回波音747的布局。有关如何做到这一点的任何想法?任何和所有的帮助将不胜感激。

我一直在尝试在Google上寻找解决方案,但我不知道如何将我在代码中找到的任何代码添加到我的代码中。如果有人想知道我已经做了什么,这就是我到目前为止所做的:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%@page import="java.sql.*"%>
<%@page import="java.io.*" %>
<%
String Model = request.getParameter("Model");
String Flight_number = request.getParameter("Flight_number");
Statement theStatement = null;
String capacity = request.getParameter("Capacity");
boolean x=true;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost/testing";
String username="root";
String password="password";
Connection conn=DriverManager.getConnection(url,username,password);
theStatement =(Statement)conn.createStatement();
theStatement.executeUpdate("INSERT INTO testing.aircraft_data ( aircraft_model, flight_no , passenger_capacity)"+ "VALUES ('"+Model+"' , '"+Flight_number+"' , '"+capacity+"')");
//Process Result

theStatement.close();
conn.close();
}

catch(Exception e){
    out.println("Exception occured! "+e.getMessage()+" "+e.getStackTrace());
    x=false;
    out.println(e);
    System.out.println(e);
    response.sendRedirect("Homescreen_Admin.jsp?correct="+x+e);
}

//response.sendRedirect("Homescreen_Admin.jsp?correct="+x);

%>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

作为一种好的做法,您绝不应将图像存储在数据库中。数据库没有针对这种用法进行优化,它会减慢一切。

更好的想法是将图像存储在其他位置(保存服务器文件系统,Amazon S3,谷歌云存储等等)并将链接保存为字符串。

如果您完全确定要保存图像,则必须在mysql中使用blob列类型并在其中存储图像字节。

注意:如果您的问题是如何将图片从html上传到服务器,那么您看到的是一个包含multipart/form-data和文件上传的{html表单https://www.w3schools.com/tags/att_input_accept.asp