發表文章

Coldfusion 隱蔽式下載

圖片
一般下載時,通常會使用 <a href="URL" /> 這種方式使用者下載,而 URL 大多的做法是指明檔案所在的位置例如  <a href="http://MySite.com/download/picture/myPicture.png">。 這種方式有幾個問題: 1、如果使用者取得此聯結位址後,可以單獨由此取得檔案或盜連,故被直接拿到的風險會很高,因為這個 URL 就是一個開放的位址。 2、由於直接指定檔案位置,很多時候檔案就會被瀏覽器直接開啟,而非下載存檔,對於大部分使用者來說,這是一個貼心的模式,但是對於很多需要下載的商業用途場合就很麻煩,使用者還必須在聯結上按『右鍵』選擇『另存檔案』的方式,操作相當不便。 3、無法設定檢查使用者取得檔案的條件。 因此,透過隱蔽式下載就是一種很好的方法。 程式碼: < cfsetting enablecfoutputonly = "yes" > <!--- 避免下載檔案遇到中文檔名無法正常下載問題而使用的功能,也可以避免使用者知道實際檔案儲存位置 ---> <!--- Arguments : file = 指定檔案名稱 ---> < cftry > <!--- 判斷使用者來源聯結是否來自本伺服器 或是直接下載,當直接下載時 REFERER 會是 空值--->     < cfif findnocase (CGI.SERVER_NAME,CGI.HTTP_REFERER) LTE 0 >     < cfthrow type = "RefererError" message = "#CGI.HTTP_REFERER#:不允許存取" >     </ cfif > <!--- 判斷參數是否存在 ---> < cfif not isdefined ( "file" )>     < cfthrow type = "Arguments" message = "

凹凸世界 - 艾比 的裝備 - 草稿圖

圖片
這是凹凸世界裡的角色 - 艾比 的相關配件,純粹幫忙畫稿 角色介紹: 看這裡 艾比的翅膀 - 出場機會太少目前只有一幕,只能放慢動畫,慢慢畫出來 QQ 艾比的武器 - 弓與箭

Coldfusion (Railo 3.3.4)使用 POI 元件 寫出 XLSX 檔案

圖片
補充前一篇  Coldfusion (Railo 3.3.4) 使用 POI 元件 讀取 xls/xlsx 修改記錄 我在 POIUtility.cfc 內加入一個 Function 用來處理寫出 XLSX 格式檔案 cfc 程式碼(增加): <!--- 自訂寫出 XLSX 的 EXCEL 檔案--->     < cffunction name= "WriteExcelX" access= "public" returntype= "void" output= "false"         hint= "Takes an array of 'Sheet' structure objects and writes each of them to a tab in the Excel file." >         <!--- Define arguments. --->         < cfargument             name= "FilePath"             type= "string"             required= "true"             hint= "This is the expanded path of the Excel file."             />         < cfargument             name= "Sheets"             type= "any"             required= "true"             hint= "This is an array of the data that is needed for each sheet of the excel OR it is a single Sheet object. Each '

Coldfusion (Railo 3.3.4) 使用 POI 元件 讀取 xls/xlsx 修改記錄

圖片
這是配合 上一篇 『 Coldfusion直接讀取/產生Excel檔案 (使用POI元件) 』進階改版 主要原因是 上一篇 的功能只能讀取 XLS檔案,但是對於XLSX卻沒有辦法處理。 如果升級 POI的版本到最新版,會造成 RAILO 內建的 Apache 無法支援該套件版本。 經過一翻苦戰,終於搞定如何處理: 首先,RAILO 3.3.4(註一) 以後因為有支援 cfspreadsheet 指令,所以內建了 POI 套件,但是這個指令僅能處理 XLS 檔案,所以可想而知這個套件是非常陽春的,更不用說要能夠讀取 XLSX 檔案了。

12V LED 電壓設計

圖片
因為有不少朋友問道: 使用電壓 12V下 LED 的電路設計如何處理,所以這裡我簡單的講解一下電路上的設計方式好了。 其實這是基本電學複習,沒有很特別,讓一些不太懂電學朋友參考。 一般我在設計車用LED電路時,對於LED的電路大概會用下面的方式,當然有的人會使用多少LED來串連是事情況而定,沒有絕對。 Figure 1: R1 = (12 V - (1.6 Vled x 2)) / 15 mA = 0.5866... ≒ 580 Ω (可以買到的電阻) Figure 2: R2 = (12 V - (1.6 Vled x 3)) / 15mA = 0.48 ≒ 470 Ω (常用電阻) Ω 也可用 Ohm 表示,唸成『歐姆』 這裡有幾個要注意的地方: 1、LED 的電壓,LED 是一顆二極體,電壓順向時有一定的偏壓存在,發光 LED 因應顏色不同,其化學材料也不同,所以每一家生產的 LED 也會有不同的偏壓,最好使用時要使用同一家且同一種型號的 LED 比較不會燒壞 LED。我使用的 LED 偏壓大約 1.6 V,所以計算時我註記成 1.6 Vled。 2、一般 LED 的電流( 這裡指 5Φ 左右的 LED ),可以承受到 25 mA,但這個電流值幾乎接近熱衰竭電流(也就是在這個電流下 長時間 工作會讓 LED 內的材料受熱損壞),所以通常我們都會設計在 15 mA ~ 20 mA 左右,以維持 LED 壽命。 3、在這電路上 Q1、Q2 作為 SWITCH (開關) 使用,CE 導通偏壓約莫 0.7 V,通常我會忽略不計。 4、電阻 瓦數可用 1/4W (0.25W) 大小, 依照 P=VI ,Figure 1 上的電阻偏壓約 8.8 V 所以 W = 8.8 V x 15 mA = 0.132 W,1/4W足夠使用了。 5、如果 LED 發光不同不建議串接使用,會發生偏壓較大的 LED 反而不太亮的問題,如果有不一樣顏色的 LED 建議單獨使用不同的電阻來偏壓。

檔案編碼轉換小工具

圖片
檔案: FileEncode.exe 運行環境: .NET 2.0 Runtime 注意,這是編碼轉換,不是翻譯喔!! 某些時候在一些新舊系統文件上就是會遇到編碼文件需求不同而傷腦筋,在某些舊程式上就是如此,也無法再改動或是更新等問題,文件本身的編碼就會導致文件交易相當不順暢。 這支小程式就是用來解決這些問題的。 但要注意的是,UNICODE萬國編碼的文字一定會比舊式編碼大得多,可能會遇到某些文字無法轉換問題,例如簡體中文(GB)轉繁體中文(BIG5)。 對於英數字文件轉換是有一定實用性的。 通常新系統會使用UTF-8編碼,舊系統會使用 BIG5編碼/ANSI編碼/ISO8895-1編碼之類的。 我這邊最多用到的是 BIG5 (950) 轉 UTF-8 (65001) 需要用的自己下載去玩吧。 下載點 使用方式: 編碼類型: 37 - IBM037 437 - IBM437 500 - IBM500 708 - ASMO-708 720 - DOS-720 737 - ibm737 775 - ibm775 850 - ibm850 852 - ibm852 855 - IBM855 857 - ibm857 858 - IBM00858 860 - IBM860 861 - ibm861 862 - DOS-862 863 - IBM863 864 - IBM864 865 - IBM865 866 - cp866 869 - ibm869 870 - IBM870 874 - windows-874 875 - cp875 932 - shift_jis 936 - gb2312 949 - ks_c_5601-1987 950 - big5 1026 - IBM1026 1047 - IBM01047 1140 - IBM01140 1141 - IBM01141 1142 - IBM01142 1143 - IBM01143 1144 - IBM01144 1145 - IBM01145 1146 - IBM01146 1147 - IBM01147 1148 - IBM01148 1149 - IBM01149 120

FirebirdSQL 新增資料庫使用者與資料表權限

圖片
Firebird 資料庫有個最高權限的 SYSDBA 帳號,正常上線使用下最好將它的密碼進行變更,然後再新增一個使用者並賦予資料表的權限,這樣比較安全。 這些調整指令都透過使用 isql 介面來完成 ※注意,使用 isql 調整資料庫相關設定前,先把 Firebird 服務/引擎 先關閉,以免發生占用衝突。 假設我們資料庫是在 D:\NEWDB\test.fdb 首先,變更 SYSDBA 的密碼 C:\FB3>isql -user SYSDBA D:\NEWDb\test.fdb↵ Database: D:\NEWDb\test.fdb, User: SYSDBA SQL> ALTER USER SYSDBA password 'mustKey';↵ SQL> COMMIT;↵ SQL> 這樣就把密碼變更為 mustKey 了 (注意,Firebird 對帳號沒有大小寫分別,但是密碼有分別) 一、新增使用者 SQL> CREATE USER user01 password 'userPass01';↵ 或是創建時同時賦予角色權限(例如管理者權限) SQL> CREATE USER user01 password 'userPass01' GRANT ADMIN ROLE;↵ ※參考  SQL user management commands ※參考  ROLE ※參考  The RDB$ADMIN role 二、對使用者賦予資料表權限 假設我有一個資料表 EMPL SQL> GRANT SELECT , INSERT , UPDATE ON TABLE EMPL TO USER user01;↵ 這代表我只賦予 user01 對 EMPL 只能操作 SELECT、INSERT、UPDATE 三種權限。 基本上,資料表操作權限只有 SELECT、INSERT、UPDATE、DELETE、REFERENCES 這四種,要 CREATE/DROP/ALTER 資料表只能由 SYSDBA 來做。 REFERENCES 這權限是用來讀取資料表的 關聯 資訊(foreign key)的。