[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
乗っていた電車で痴漢騒ぎがありました。
誤解だと言ってましたが・・・・・大変だな。
さて、
aspxメインで動いているシステムで、複数ファイルをzipに圧縮して落とす仕組みを追加(外注)しました。
Chestysoft(http://www.chestysoft.com)というところのcsASPZipFileというASPコンポーネントで実装してもらったのですが、ダウンロードがとても遅い・・・・・
ダウンロード中の速度を見ていると、200KB/sくらいで始まり、だんだん遅くなって50KB/sくらいになってしまいます。
100MBくらいのボリュームになる場合も多いので、これでは使い物になりません。
調べると、zipファイル作成はサックリ終わっているのに、csASPZipFileコンポーネントのStreamZipメソッドが遅い模様。
Basp21のストリームを使ってみたりしてもらったのですが、外注先のSEさん曰く、『・・・手詰まりです』とのこと。
そのシステムのサーバーにはColdFusionMX7が載っているので、ColdFusionでzipファイル作る方法はないのかなぁ・・・・と調べ始めたところ、csASPZipFileのマニュアルにColdFusionの文字がっ!
Using csASPZipFile With ColdFusion
そもそも名前にASPとついていたので、ColdFusionで使えるとは思ってもいませんでした。
早速テスト。サンプルコードもあったので、あっという間にテスト完了。
Goodです。イントラレベルのダウンロードスピードが出てると思います。
テストソースはこんな感じ。
※select.cfm makezip.cfmを同じパスに置いて、その下にdatafilesフォルダを作ってダウンロード対象ファイルを入れます。
<html>
<head>
<title>Make selection</title>
</head>
<body>
<p>Select the files for download</p>
<form action=makezip.cfm method=post>
<cfset dir = ExpandPath(".") & "\datafiles\">
<cfdirectory directory="#dir#" name="datafiles">
<cfset I = 0>
<cfoutput query="datafiles">
<cfif (#name# NEQ ".") and (#name# NEQ "..")>
<input type=checkbox value=true name=#I#>#name#<br>
</cfif>
<cfset I = I + 1>
</cfoutput>
<input type=hidden name=directory value="<cfoutput>#HTMLEditFormat(dir)#</cfoutput>">
<input type=reset value=Clear><input type=submit value=Download>
</form>
</body>
</html>
======================== makezip.cfm ======================
<cfcache action="flush">
<cfset dir=form["directory"]>
<cfset filename=ExpandPath(".") & "\" & CreateUUID() & ".zip">
<!-- use the appropriate version of the component -->
<!---<cfobject action="create" name="zip" class="csASPZipFileTrial.MakeZip">--->
<cfobject action="create" name="zip" class="csASPZipFile.MakeZip">
<cfset I=0>
<cfdirectory directory=#dir# name="datafiles">
<cfoutput query="datafiles">
<cftry>
<cfif form["#I#"] EQ "true">
<cfset zip.ZipAdd(dir & #name#)>
</cfif>
<cfcatch>
</cfcatch>
</cftry>
<cfset I = I + 1>
</cfoutput>
<cfset zip.SaveZip(#filename#)>
<cfcontent type="application/x-zip-compressed" deletefile="yes" file=#filename#>
う~ん。やっぱりColdFusionが好き。
zip圧縮ですが、
cflibでZipFileNewというFunctionを見つけました。
http://www.cflib.org/udf.cfm?id=744
java.util.zip.ZipOutputStreamを使っているみたいです。
ソースも短いしJavaを知らない私でも手軽に組み込めそうです。
私には使う予定が無いのでサビシイところですがどうでしょう(^^;
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
01 | 2025/02 | 03 |
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 |