%@ page contentType="text/html; charset=MS932" %><%@ page import="java.io.*" %><%@ page import="java.util.*" %><%@ page import="java.text.*" %><% //************************************************************************* /** * 画像一覧作成JSP ver.1 * 配置された画像と同じフォルダにある画像の一覧を作成します。 * * 使用方法: * このファイルの拡張子を".jsp"に変更し、画像を格納するフォルダに配置します。 * 画像フォルダは、サーブレットコンテナの配下にある必要があります。 * カスタマイズ: * 少しですがカスタマイズ用のパラメタがあります。 * 少し下のほうの「カスタマイズ項目」のブロックの定数を変更します。 * * 以下の定数は、全般的な設定を行います。 * ACCEPT_RE_PATTERN * 画像を現すファイル名に合致する正規表現を指定します。 * ファイル名は、すべて小文字に変換してからチェックされます。 * デフォルトでは、BMP,JPEG,GIF,PNGが対象になります。 * ENABLE_SORT_OPTION * true にするとソートメニューを表示します。 * false にすると、ファイル一覧のみ表示します。 * * 以下の項目は、一覧表示時にも使用します。 * デフォルト設定を、規定の定数値以外に変更した場合は、ファイル名の昇順で表示されます。 * SORT_FIELD_DEFAULT * ソート項目を、ファイル名(SORT_FIELD_BY_NAME)か、 * ファイルの更新日付(SORT_FIELD_BY_DATE)のどちらを使用するか選択します。 * SORT_ORDER_DEFAULT * ソート方向を昇順(SORT_ORDER_BY_ASC)か、降順(SORT_ORDER_BY_DESC)の * どちらにするかを選択します。 * * 確認環境: * WindowsXpSp2, Tomcat5.5.17, JavaSE1.5.09 * * ご注意: * このファイルは、ダウンロードして自由に使用・カスタマイズしていただいて構いませんが、 * ご使用の中で発生するいかなる問題・障害に対しても、公開者がなんら保障を行うことは * ありません。すべて使用される方の責任において、使用ください。 * なお、使用に当たっては、この「ご注意」「著作・制作」ブロックを削除・改変せず、 * また、当初の制作範囲を明示することを条件に、いかなる修正を行っていただいても結構です。 * 著作・制作: * MINyProjects 2006, http://www.minyprojects.com/waltraute/ ※URLは変わる場合があります。 */ %><%! // 定数宣言 /** ソート項目をファイル名にする */ private static final int SORT_FIELD_BY_NAME = 1; /** ソート項目をファイル更新日付にする */ private static final int SORT_FIELD_BY_DATE = 2; /** ソート方向を昇順にする */ private static final int SORT_ORDER_BY_ASC = 1; /** ソート方向を昇順にする */ private static final int SORT_ORDER_BY_DESC = 2; /* * カスタマイズ項目 * 以下の定数の値を変更することで、基本的な動作を変更することができます。 */ // ここから /** 一覧で許容するファイル名パターンの正規表現 */ public static final String ACCEPT_RE_PATTERN = "^.*\\.(bmp|jpg|jpeg|gif|png)$"; /** ソートオプションを表示する場合にtrue */ public static final boolean ENABLE_SORT_OPTION = true; /** ソート項目のデフォルト値を設定 */ public static final int SORT_FIELD_DEFAULT = SORT_FIELD_BY_DATE; // ファイル更新日付 public static final int SORT_ORDER_DEFAULT = SORT_ORDER_BY_DESC; // 降順 // ここまで /** * 指定数値を3桁ごとのカンマ区切りの文字列にする。 * @param value 処理対象の数値 * @return 引数の数値を3桁ごとにカンマ区切りにした文字列 */ private String commaDelimited(long value){ String val_ = "" + value; int num = val_.length() / 3; int opt = val_.length() - num * 3; StringBuffer ret_ = new StringBuffer(val_.substring(0, opt)); for(int i = 0 ; i < num ; i ++){ if(ret_.length() > 0){ ret_.append(","); } ret_.append(val_.substring(i * 3 + opt, (i + 1) * 3 + opt)); } return ret_.toString(); } /** * 指定日付を日時フォーマットで出力する。 * @param stamp 処理したい日付 * @return 引数の日付を"yyyy-MM-dd HH:mm:ss"のフォーマットで編集した文字列 */ private String formattedTimestamp(Date stamp){ SimpleDateFormat sdf_ = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf_.format(stamp); } //*****************************************************************************// %> <% // パス解決など String srvpath_ = request.getRequestURI().substring(request.getContextPath().length(), request.getRequestURI().lastIndexOf("/") + 1); String dirpath_ = request.getRequestURI().substring(0, request.getRequestURI().lastIndexOf("/") + 1); String docbase_ = application.getRealPath(srvpath_); File folderpath_ = new File(docbase_); %>
file name | last modified | size [byte] |
---|---|---|
<%= tmp_.getName() %> | <%= formattedTimestamp(new Date(tmp_.lastModified())) %> | <%= commaDelimited(tmp_.length()) %> |