CKFinder 檔案管理器的 PHP 版本於 2015 年釋出版本號 3 的大改版,.NET 版本比較遲,於2016年12月才釋出(CKFinder 3.3 for ASP.NET Released),如今過了兩年多到 3.5.1,地雷應該都清光了吧?畢竟 CKFinder 2 已經不再更新了,在觸控裝置上也很難用,來自己摸索安裝看看 CKFinder 3。
CKFinder 是最低品質 costdown web 程式開發重要的一環,開發人員不需要自己用 PHP 或 ASP.NET 的伺服器端語法讀取目錄和檔案清單、建立目錄、多檔拖曳、寫入伺服器、刪除檔案、修改檔名、控制瀏覽權限、控制圖片壓縮品質、圖片寬比高大的時候最大寬高要怎麼等比壓縮、圖片高比寬大的時候寬高要怎麼等比壓縮,讀取EXIF的圖片旋轉資訊,壓縮後把小圖另存在另一個路徑….等一堆瑣碎的檔案操作,用別人寫好的免費開源試用版程式,少奮鬥十年。
本機作業系統是 Mac,沒有安裝 Visual Studio for Mac,所以什麼 NuGet 指令安裝,或是專案檔加入參考的做法都跟我無緣。
直接把 web.config 跟 CKFinder 程式檔目錄丟到簡單又便宜的 Windows 虛擬主機上,用程式範例檔 CKFinder Samples – Full Page Mode 來測試。
首先會遇到 Server Error 404 – File or directory not found.
Console 裡面提示是這個路徑 /xxx/connector?command=Init&lang=zh-tw
有錯,
現在 CKFinder 3 變成類似虛擬目錄的東西。這麼高科技,所以程式一開始壓根兒就沒有這支檔案,要怎麼除錯 404 找不到檔案?
把 CKFinder 2 的實體 connector 的資料夾和程式檔硬放上去也沒用,最後發現是 CKFinder 3 提供範例的 web.config 的預設值 <add key="ckfinderRoute" value="/connector"/>
要改掉,
換成 <add key="ckfinderRoute" value="/xxx/connector"/>
才行。
(把自己的安裝目錄 xxx 加上去,開頭一定要是斜線,不能是~/)
語系檔錯誤?Quick Start Guide 有寫到這 JSON MIME Type Support 問題,得把 .json 副檔名加到 MIME 的相關設定裡,Add a MIME Type in IIS,2012年的文件非常老舊,設定方式有很多種,先用熟悉的 web.config 設定法最對味。
在 web.config 的 <system.webServer>
裡面加入
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
不知道這又是甚麼訊息,先查找程式內的語系檔案,是 error 104,對應的錯誤訊息原文為 It was not possible to complete the request due to file system permission restrictions.
後來摸索出,又是 CKFinder 3 提供範例的 web.config 的整人考驗:
<backend name="default" adapter="local" useProxyCommand="true">
<option name="root" value="userfiles"/>
<option name="baseUrl" value="/ckfinder/userfiles/"/>
</backend>
得依自己的目錄情況調整
<backend name="default" adapter="local" useProxyCommand="true">
<option name="root" value="~/xxx/"/>
<option name="baseUrl" value="xxx/"/>
</backend>
不知道這又是甚麼訊息,先查找程式內的語系檔案,原文是 The ... 繼續閱讀⇢