2017-05-20 14 views
0

私は想像上の飛行会社のデータベースを設定しています。私は管理者がデータベースにフライト番号、飛行モデル、容量、座席のレイアウトなどのデータを入力できるようにする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> 
+0

http://stackoverflow.comを見てみましょう/ questions/36408805/html-jsp-as-a-servletからパラメータを受け取る方法-ad-a-file-type – Juan

+0

@Juan Thanks。私は質問を見て、解決策はサーブレットを書くことだと述べました。これは、サーブレットを作成して何らかの形でjspにリンクして、ユーザーからイメージを取得できるようにする必要があるということですか? – Noob

+0

私があなたの仕事をしていたら、サーブレットを使ってフォームから入力を受け取り、サーブレットからjspページを送出して出力を表示します。これを行うには、サーブレットのrequest.getRequestDispatcher( "/ WEB-INF/index.jsp")。forward(request、response);を参照してください。画像の保存については、@Nicolas Azrakが正しいです。 – Juan

答えて

0

:誰もが私はすでにやったかと思っている場合には、これは私がこれまで持っているものです。データベースはその種の使用法に合わせて最適化されていないため、すべての処理が遅くなります。

もっと良いアイデアは、イメージを別の場所に保存することです(サーバーファイルシステム、Amazon S3、Googleクラウドストレージなどを保存してください)。その代わりにリンクを文字列として保存してください。

イメージを保存することを完全に確信している場合は、mysqlのblobカラム型を使用してイメージのバイトを格納する必要があります。

注:あなたの問題は、サーバーにHTMLから画像をアップロードする方法であれば、あなたが探しているものをmultipart/form-dataでHTMLフォームであり、ファイルのアップロードhttps://www.w3schools.com/tags/att_input_accept.asp

+0

答えをありがとう。私はあなたがHTMLからサーバーに画像をアップロードすることによって、あなたが何を意味するのか理解していません。私が念頭に置いていたのは、ユーザーがコンピュータから画像(C:ドライブ)を直接データベースにアップロードして保存できるようにすることでした。私はそれが可能かどうかを知りたいのですが、もしそうなら、どうですか?どんな助けもありがとう。 – Noob

+0

実際には、私は座席の計画が100kをはるかに超えることになるとは思っていないので、データベースに直接格納するのはおそらく珍しいかもしれません。 – Strawberry

+0

あなたが共有しているコードからは、HTMLを提供するWebアプリケーションだと思われるので、画像をアップロードできるようにするには、ファイル入力を追加するフォームを作成する必要があります(http://html.com/ input-type-file /ファイルをアップロードするために常にページに表示されます)。選択したイメージを含むフォームがhttpサーバーに送信され、イメージが送信されます。それで、あなたはイメージで何でもしたいことができます。あなたの –

関連する問題