全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
去年抽選で当たったDSLiteを売って、Wiiを買ってみた。
するとWi-Fiのルーターが欲しくなり、I/0データのWN-G54/R3を購入・・・・
散財。
さて、サーバーの特定フォルダ以下をツリー表示する方法。
ColdFusionAdministratorのデーターソース設定にあるようなイメージです。
いいコンポーネントが無いかなぁ・・・と探したのですが、英語圏の検索が下手なのか、なかなか使えそうなものが見つかりませんでした。
結局、<CFDIRECTORY>(→LiveDocs) と <CFTREE>(→LiveDocs)の組み合わせでゴリゴリ書いてみたわけです。
・・・・( ̄~ ̄;)ウーン・・・
美しくないな・・・・・と思う。
回帰的に書きたかった所ですが、<cftree>から<cftreeitem>の部分を抜き出して回帰的に書こうとすると、
「CFTREEが無い!」と怒られてコンパイルできないわけです。
仕方なくネストネスト・・・・
当然階層の上限が出てしまいます。
いい方法ないかなぁ・・・・
と思っていたら、うたらぼさんが助けてくれました。
するとWi-Fiのルーターが欲しくなり、I/0データのWN-G54/R3を購入・・・・
散財。
さて、サーバーの特定フォルダ以下をツリー表示する方法。
ColdFusionAdministratorのデーターソース設定にあるようなイメージです。
いいコンポーネントが無いかなぁ・・・と探したのですが、英語圏の検索が下手なのか、なかなか使えそうなものが見つかりませんでした。
結局、<CFDIRECTORY>(→LiveDocs) と <CFTREE>(→LiveDocs)の組み合わせでゴリゴリ書いてみたわけです。
--------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CFTREEテスト</title>
</head>
<cfset root = "D:\ColdFusion8\wwwroot\scorpio\root\351083045"><!---表示フォルダの絶対パス--->
<cfset URLroot = "./root/351083045"><!---表示フォルダのURLルートパス--->
<cfdirectory action="list" directory="#root#" name="dir" sort="directory" recurse="yes">
<cffunction name="dirquery" returntype="query">
<cfargument name="dirname" required="yes" hint="フルパス指定">
<cfquery dbtype="query" name="dirtemp">
select NAME,TYPE from dir where directory = '#dirname#' order by name,type
</cfquery>
<cfreturn dirtemp>
</cffunction>
<body>
<cfform>
<cftree name="dlist" width="300" height="650" vspace="5" hspace="5" format="applet">
<cftreeitem value="#root#" display="351083045GH">
<cfset d1 = dirquery(root)>
<cfloop query="d1">
<cftreeitem display="#d1.NAME#" value="#root#\#d1.NAME#" parent="#root#"
img="#IIF((d1.TYPE is 'Dir'),DE('folder'),DE('document'))#">
<cfif d1.TYPE is 'Dir'>
<cfset parent1="#root#\#d1.NAME#">
<cfset d2 = dirquery(parent1)>
<cfloop query="d2">
<cfset path="#parent1#\#d2.NAME#">
<cftreeitem value="#path#" display="#d2.NAME#" parent="#parent1#"
img="#IIF((d2.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d2.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d2.TYPE is 'Dir'>
<cfset parent2=#path#>
<cfset d3 = dirquery(parent2)>
<cfloop query="d3">
<cfset path="#parent2#\#d3.NAME#">
<cftreeitem value="#path#" display="#d3.NAME#" parent="#parent2#"
img="#IIF((d3.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d3.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d3.TYPE is 'Dir'>
<cfset parent3=path>
<cfset d4 = dirquery(parent3)>
<cfloop query="d4">
<cfset path="#parent3#\#d4.NAME#">
<cftreeitem value="#path#" display="#d4.NAME#" parent="#parent3#"
img="#IIF((d4.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d4.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d4.TYPE is 'Dir'>
<cfset parent4=path>
<cfset d5 = dirquery(parent4)>
<cfloop query="d5">
<cfset path="#parent4#\#d5.NAME#">
<cftreeitem value="#path#" display="#d5.NAME#" parent="#parent4#"
img="#IIF((d5.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d5.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d5.TYPE is 'Dir'>
<cfset parent5=path>
<cfset d6 = dirquery(parent5)>
<cfloop query="d6">
<cfset path="#parent5#\#d6.NAME#">
<cftreeitem value="#path#" display="#d6.NAME#" parent="#parent5#"
img="#IIF((d6.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d6.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d6.TYPE is 'Dir'>
<cfset parent6=path>
<cfset d7 = dirquery(parent6)>
<cfloop query="d7">
<cfset path="#parent6#\#d7.NAME#">
<cftreeitem value="#path#" display="#d7.NAME#" parent="#parent6#"
img="#IIF((d7.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d7.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfset d8 = dirquery(path)>
<cfif d8.recordcount gt 0>
<cftreeitem value="7階層以上表示できません" parent="#path#\#d7.NAME#" img="element">
</cfif>
</cfloop><!---d7--->
</cfif>
</cfloop><!---d6--->
</cfif>
</cfloop><!---d5--->
</cfif>
</cfloop><!---d4--->
</cfif>
</cfloop><!---d3--->
</cfif>
</cfloop><!---d2--->
</cfif>
</cfloop><!---d1 --->
</cftree>
</cfform>
</body>
</html>
--------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CFTREEテスト</title>
</head>
<cfset root = "D:\ColdFusion8\wwwroot\scorpio\root\351083045"><!---表示フォルダの絶対パス--->
<cfset URLroot = "./root/351083045"><!---表示フォルダのURLルートパス--->
<cfdirectory action="list" directory="#root#" name="dir" sort="directory" recurse="yes">
<cffunction name="dirquery" returntype="query">
<cfargument name="dirname" required="yes" hint="フルパス指定">
<cfquery dbtype="query" name="dirtemp">
select NAME,TYPE from dir where directory = '#dirname#' order by name,type
</cfquery>
<cfreturn dirtemp>
</cffunction>
<body>
<cfform>
<cftree name="dlist" width="300" height="650" vspace="5" hspace="5" format="applet">
<cftreeitem value="#root#" display="351083045GH">
<cfset d1 = dirquery(root)>
<cfloop query="d1">
<cftreeitem display="#d1.NAME#" value="#root#\#d1.NAME#" parent="#root#"
img="#IIF((d1.TYPE is 'Dir'),DE('folder'),DE('document'))#">
<cfif d1.TYPE is 'Dir'>
<cfset parent1="#root#\#d1.NAME#">
<cfset d2 = dirquery(parent1)>
<cfloop query="d2">
<cfset path="#parent1#\#d2.NAME#">
<cftreeitem value="#path#" display="#d2.NAME#" parent="#parent1#"
img="#IIF((d2.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d2.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d2.TYPE is 'Dir'>
<cfset parent2=#path#>
<cfset d3 = dirquery(parent2)>
<cfloop query="d3">
<cfset path="#parent2#\#d3.NAME#">
<cftreeitem value="#path#" display="#d3.NAME#" parent="#parent2#"
img="#IIF((d3.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d3.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d3.TYPE is 'Dir'>
<cfset parent3=path>
<cfset d4 = dirquery(parent3)>
<cfloop query="d4">
<cfset path="#parent3#\#d4.NAME#">
<cftreeitem value="#path#" display="#d4.NAME#" parent="#parent3#"
img="#IIF((d4.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d4.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d4.TYPE is 'Dir'>
<cfset parent4=path>
<cfset d5 = dirquery(parent4)>
<cfloop query="d5">
<cfset path="#parent4#\#d5.NAME#">
<cftreeitem value="#path#" display="#d5.NAME#" parent="#parent4#"
img="#IIF((d5.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d5.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d5.TYPE is 'Dir'>
<cfset parent5=path>
<cfset d6 = dirquery(parent5)>
<cfloop query="d6">
<cfset path="#parent5#\#d6.NAME#">
<cftreeitem value="#path#" display="#d6.NAME#" parent="#parent5#"
img="#IIF((d6.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d6.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d6.TYPE is 'Dir'>
<cfset parent6=path>
<cfset d7 = dirquery(parent6)>
<cfloop query="d7">
<cfset path="#parent6#\#d7.NAME#">
<cftreeitem value="#path#" display="#d7.NAME#" parent="#parent6#"
img="#IIF((d7.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d7.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfset d8 = dirquery(path)>
<cfif d8.recordcount gt 0>
<cftreeitem value="7階層以上表示できません" parent="#path#\#d7.NAME#" img="element">
</cfif>
</cfloop><!---d7--->
</cfif>
</cfloop><!---d6--->
</cfif>
</cfloop><!---d5--->
</cfif>
</cfloop><!---d4--->
</cfif>
</cfloop><!---d3--->
</cfif>
</cfloop><!---d2--->
</cfif>
</cfloop><!---d1 --->
</cftree>
</cfform>
</body>
</html>
--------------------------
・・・・( ̄~ ̄;)ウーン・・・
美しくないな・・・・・と思う。
回帰的に書きたかった所ですが、<cftree>から<cftreeitem>の部分を抜き出して回帰的に書こうとすると、
「CFTREEが無い!」と怒られてコンパイルできないわけです。
仕方なくネストネスト・・・・
当然階層の上限が出てしまいます。
いい方法ないかなぁ・・・・
と思っていたら、うたらぼさんが助けてくれました。
PR
日経コンピュータの2007 6/25号 p26に記事が載りました。
Flexで作った画面のスクリーンショットも小さいながら。
さて、
コールドフュージョン8の新機能として、サーバーモニタリングツールがよく取り上げられていますね。
Flexベースでビジュアル的にも派手だし、なんかカッコイイ。
今のところ、負荷をかけるような事をしているわけではないので、見ることが少ないわけですが、ちょっとだけ「おっ?!」と思ったので書いておきます。
開発中、HTTP 500 内部サーバーエラー を出しちゃうことって結構ありませんか?
ColdFusionをデバッグモードにしておけば、ほとんどのエラーはブラウザ上ですぐ確認できるのですが、たまにHTTP500が出ると、何のエラーが出たのかわからないため、Application.logとかを見る必要があります。
そんなとき、サーバーモニタ「概要」の右下にある「前回のエラー」を見ると、大体アタリがつくかもしれません。
コードを書いているときは立ち上げておき、ひょいと見れるようにしておけば結構いいかも。
その前にエラー出すなよ・・・って話ですが。
少し前になりますが、6月1日に行われた緊急地震速報機器の展示会に、「ユレキテル」を出展しました。
以前ちょっと紹介したやつです。
テレビカメラも入っていたので、もしかしたら流れるかもと思っていたのですが、どうやら当日のワールドビジネスサテライトのトレンドたまごコーナーでちょっと映ってたようです。

全く期待してなかったので、ノーチェック見逃し・・・il||li _| ̄|○ il||li
幸い、「トレンドたまごアーカイブ」ってのがwebにあり、そこで見ることができました。
よっぽどヒマな方はこちらからどうぞ。
最初に一瞬だけなので、ほとんどPRになってません・・・
シャイなワタシは、滝井礼乃レポーターにほぼ100%カブっており、本人以外、そこに立ってることが認識できませんです。
上の写真にあるノートPCに、ColdFusionのデベロッパー版を入れてデモに使いました。
TBSはインタビュー受けたんだけど、いつ放送するか未定って言ってたから、また見逃すんだよな。多分。
滝井アナウンサーは、なかなかカワいい感じでよかったです。
以前ちょっと紹介したやつです。
テレビカメラも入っていたので、もしかしたら流れるかもと思っていたのですが、どうやら当日のワールドビジネスサテライトのトレンドたまごコーナーでちょっと映ってたようです。
全く期待してなかったので、ノーチェック見逃し・・・il||li _| ̄|○ il||li
幸い、「トレンドたまごアーカイブ」ってのがwebにあり、そこで見ることができました。
よっぽどヒマな方はこちらからどうぞ。
最初に一瞬だけなので、ほとんどPRになってません・・・
シャイなワタシは、滝井礼乃レポーターにほぼ100%カブっており、本人以外、そこに立ってることが認識できませんです。
上の写真にあるノートPCに、ColdFusionのデベロッパー版を入れてデモに使いました。
TBSはインタビュー受けたんだけど、いつ放送するか未定って言ってたから、また見逃すんだよな。多分。
滝井アナウンサーは、なかなかカワいい感じでよかったです。
GeForce8600GTのグラボを積みました。
デュアルディスプレイが快適。
Vistaのナントカスコアも3.3→5.2とアップしてちょっと嬉しい。
さて、
ブラウザからサーバーにファイルをアップロードする方法について。
htmlだけで、どうやってやるのか知りません。実は。
<input type="file">というhtmlタグがあるわけですが、どうやってhtmlで受けるんだろう・・・・
phpやaspなんかを使わなきゃできないのかも。
coldfusionでやる方法。
A.cfmで<input type="file">を使って、B.cfmにpostします。
A.cfm
B.cfm
A.cfmは、普通のhtmlファイルでもかまいません。
enctype="multipart/form-data"
を指定するところがポイント。
受け側のB.cfmで、<cffile>(→LiveDocs)タグを使います。
filefield= で、inputで指定したnameと合わせる必要があります。
distination は保存場所です。
フルパスで指定する必要があります。
hetemlの場合はコントロールパネルの「ドメイン・メール設定」を見るとパスが書いてあります。
nameconflict で、ファイル名がかぶった場合、上書きするのか、番号を付けてユニークにするのか、エラーを出すのかを指定します。
そうそう、ヘテムルの場合、パーミッションを707に変更しないとアップロードできません。
アップロードされたファイルの所有者は、zeusってなってるな。
デュアルディスプレイが快適。
Vistaのナントカスコアも3.3→5.2とアップしてちょっと嬉しい。
さて、
ブラウザからサーバーにファイルをアップロードする方法について。
htmlだけで、どうやってやるのか知りません。実は。
<input type="file">というhtmlタグがあるわけですが、どうやってhtmlで受けるんだろう・・・・
phpやaspなんかを使わなきゃできないのかも。
coldfusionでやる方法。
A.cfmで<input type="file">を使って、B.cfmにpostします。
A.cfm
<form action="B.cfm" method="post" enctype="multipart/form-data">
<input type="file" name="attach" />
<input type="submit" />
</form>
<input type="file" name="attach" />
<input type="submit" />
</form>
B.cfm
<cffile action="upload" filefield="attach"
destination="/home/sites/heteml/******/" nameconflict="makeunique">
destination="/home/sites/heteml/******/" nameconflict="makeunique">
A.cfmは、普通のhtmlファイルでもかまいません。
enctype="multipart/form-data"
を指定するところがポイント。
受け側のB.cfmで、<cffile>(→LiveDocs)タグを使います。
filefield= で、inputで指定したnameと合わせる必要があります。
distination は保存場所です。
フルパスで指定する必要があります。
hetemlの場合はコントロールパネルの「ドメイン・メール設定」を見るとパスが書いてあります。
nameconflict で、ファイル名がかぶった場合、上書きするのか、番号を付けてユニークにするのか、エラーを出すのかを指定します。
そうそう、ヘテムルの場合、パーミッションを707に変更しないとアップロードできません。
アップロードされたファイルの所有者は、zeusってなってるな。
最新記事
(12/04)
(12/19)
(10/07)
(09/11)
(05/07)
(04/24)
(01/11)
(12/27)
(11/05)
(11/03)
ブログ内検索
カテゴリー
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新コメント
(05/20)
(03/15)
(05/25)
(02/07)
(12/19)
最新トラックバック
カレンダー
03 | 2025/04 | 05 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
ColdFusionリンク
アーカイブ
最古記事
(06/23)
(06/26)
(06/27)
(06/28)
(06/29)
(06/30)
(07/03)
(07/04)
(07/05)
(07/06)
なかのひと