トップページへ戻る

準備


$cp /home/hanrin/tci10006.jar /home/tci100xxx/public_html/tomcat/WEB-INF/lib
$cp /home/hanrin/commons-io-2.1.jar /home/tci100xxx/public_html/tomcat/WEB-INF/lib
$cp /home/hanrin/commons-fileupload-1.2.2.jar /home/tci100xxx/public_html/tomcat/WEB-INF/lib

を実行し、必要なjarをWEBINF/libにコピーしておいてください。

このタグライブラリは、テーブルの形が決まっており、画像もJPGだけしかアップロードできません。
この方式を変えたい、というひとは、先生に言ってください。好きな形して、コンパイルします。

*お知らせ tci10006.jarを使う人へ

大事なファイルを入れ忘れました。もう一度、tci10006.jarをコピーし直してから使ってください。

1、フォームでファイルをアップロードする

このタグライブラリは、以下のテーブルでしか動作出来ません。

テーブル名は自由で構いませんが、列名は、同じでなければなりません。

drop table bt_gakusei;

create table bt_gakusei(
	id serial primary key,
	name varchar(100),
	title varchar(400),
	comment varchar(400),
	filename varchar(400), 	
dpass varchar(100), cdate timestamp default now(), img bytea, rid int ); grant all on bt_gakusei to tomcat; grant all on bt_gakusei_id_seq to tomcat;

フォームは、投稿されたスレッドにコメントを付けられるようになっています

<form method="post" enctype="multipart/form-data" action="fileupload.jsp" id="mf">
 <table class="ftbl">
 <tr>
 <td class="ftd">名前:</td>
 <td><input type="text" name="name" value="" /></td>
 </tr>
 <tr>
 <td class="ftd">タイトル:</td>
 <td><input type="text" name="title" value="" /></td>
 </tr>
 <tr>
 <td class="ftd">コメント:</td>
 <td> 何番へのコメント?:
 <sql:query sql="select * from bt_gakusei where rid = 0 order by id desc limit 3;" var="com"/>
 <select name="rid">
 <option value="">新しいスレッド</option>
 <c:forEach var="a" items="${com.rows}" varStatus="jl">
 <option value="${a.id}">たいとる:${a.title}へ返信</option>
 </c:forEach>
 </select><br /> 
 <textarea rows="5" cols="40" name="comment"></textarea></td>
 </tr>
 <tr>
 <td class="ftd">添付File:</td>
 <td><input type="file" name="img" value="set" /></td>
 </tr>
 <tr>
 <td class="ftd">削除キー:</td>
 <td><input type="password" name="dpass" value="" size="20" maxlength="8" /></td>
 </tr>
 <tr>
 <td class="ftd">書き込み実行:</td>
 <td><input type="submit" value="書き込む" /></td>
 </tr>
 </table>
 </form> 

 

2、JSPでのタグの使用

JSPに

<%@ taglib uri="/tci10006" prefix="gh" %>

を追加すると使えるようになります。

全ソースコード公開

----index.jsp

<%@ page contentType="text/html; charset=UTF-8" trimDirectiveWhitespaces="true" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<sql:setDataSource dataSource="jdbc/tci10006" />
<fmt:requestEncoding value="UTF-8"/>
<fmt:setLocale value="ja_JP" />
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=no" />
<title>卒業制作</title>
<style>
   body {
 background-color:#87CEFA;
 }
 h1 {
 background-color:#F4A460;
 font-size:25px;
 }
 h2 {
 background-color:#F4A460;
 font-size:25px;
 }
 .ftbl {
 table-layout:fixed;
 width: 478px;
 margin: 0px auto;
 }
 .ftd {
 background-color:#F08080;
 width:100px;
 font-size:12px;
 }
 #header {
 text-align: center;
 }
 #list {
 margin: 0px 300px;
 }
 #footer {
 text-align: center;
 }
 .com {
 position: relative;
 left: 100px;
 top: -10px;
 background-color: #f4f3f2;
 padding: 30px;
 color: #C60;
 font-size:12px;
 }
 .di1{
 padding: 4px;
 background: #D2E2FF;
 font-size: 14px;
 }
 ul {
 margin-top: 50px;
 font-size: 12px;
 padding: 0px;
 border: 1px solid #663300;
 border-spacing: 0px;
 background-color:#ffffff;
 }
 li {
 list-style-position: inside;
 border-right: 1px solid #663300;
 border-bottom: 1px solid #663300;
 color: #330000;
 background-color: #eeeeee;
 padding: 0.3em 1em;
 text-align: left;
 }
 </style>
</head>
<body>
<div id="page">
<div id="header">
<h1>画像投稿掲示板</h1>
</div>
<div id="content">
<form method="post" enctype="multipart/form-data" action="fileupload.jsp" id="mf">
<table class="ftbl">
<tr>
<td class="ftd">名前:</td>
<td><input type="text" name="name" value="" /></td>
</tr>
<tr>
<td class="ftd">タイトル:</td>
<td><input type="text" name="title" value="" /></td>
</tr>
<tr>
<td class="ftd">コメント:</td>
<td> 何番へのコメント?:
 <sql:query sql="select * from bt_gakusei where rid = 0 order by id desc limit 3;" var="com"/>
<select name="rid">
<option value="">新しいスレッド</option>
<c:forEach var="a" items="${com.rows}" varStatus="jl">
<option value="${a.id}">たいとる:${a.title}へ返信</option>
</c:forEach>
</select><br /> 
<textarea rows="5" cols="40" name="comment"></textarea></td>
</tr>
<tr>
<td class="ftd">添付File:</td>
<td><input type="file" name="img" value="set" /></td>
</tr>
<tr>
<td class="ftd">削除キー:</td>
<td><input type="password" name="dpass" value="" size="20" maxlength="8" /></td>
</tr>
<tr>
<td class="ftd">書き込み実行:</td>
<td><input type="submit" value="書き込む" /></td>
</tr>
</table>
</form>
<div id="list">
<c:forEach var="i" items="${com.rows}" varStatus="sl">
<ul>
<li> No:<div class="di1">${i.id}</div></li>
<li> 名前:<div class="di1">${i.name}</div></li>
<li> タイトル:<div class="di1">${i.title}</div></li>
<li> コメント:<div class="di1">${i.comment}</div></li>
<li>添付ファイル:<img src="btread.jsp?id=${i.id}" width="100" height="100" /></li>
<li>時間:<div class="di1">${i.cdate}</div></li>
<li> 削除キー:
 <form action="del.jsp" method="post">
<input type="text" value="" name="delkey" />
<input type="checkbox" value="${i.id}" name="delid" />
<input type="submit" value="削除実行" />
</form>
</li>
</ul>
<sql:query sql="select * from bt_gakusei where rid = ?;" var="rs1">
<sql:param value="${i.id}" />
</sql:query>
<c:forEach var="j" items="${rs1.rows}">
<div class="com"> コメントID:<span class="di1">${j.id}</span><br  />コメント本文:<div class="di1">${j.comment}</div></div>
</c:forEach>
<hr />
</c:forEach>
</div>
</div>
<div id="footer">
<h1>&copy;gakusei</h1>
</div>
</div>
</body>
</html> 

---fileupload.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/tci10006" prefix="gh" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>File</title>
</head>
<body>
<fmt:requestEncoding value="UTF-8" />
<fmt:setLocale value="ja_JP" />
<gh:fileup jdbc="jdbc:postgresql:tci10006" user="tci10006" pass="" db="tci10006" table="bt_gakusei" />
<c:redirect url="index.jsp" />
</body>
</html>

---btread.jsp

<%@ page contentType="image/jpeg" trimDirectiveWhitespaces="true"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="/tci10006" prefix="gh" %>
<fmt:parseNumber var="fid" value="${param.id}" />
<gh:read jdbc="jdbc:postgresql:tci10006" user="tci10006" pass="" db="tci10006" table="bt_gakusei" id="${fid}" />

*終わったら、新バージョンのjarの改良をしますので、もう一度繰り返してください。

トップへ戻る