Feeds:
文章
迴響

Archive for 2009 年 04 月

檔案上傳部份整合 ajax upload 進行非同步檔案上傳。下載介面整合 jqGrid 。目前介面如下:

image

測試網址:http://gaeforjava.appspot.com/FileServlet

Read Full Post »

前陣子利用 GAE/J + Google Gadgets 進行小程式開發,因為 Gadgets Host 有實作 gadget.io,因此 Gadgets 可透過該 API 進行跨網域的 Http Request,在 Firefox 和 Chrome 運作的很好,但是在 IE6, 7 和 8 都沒有辦法使用該組 api。

後來發現用人使用 PHPRPC 來實作跨網域呼叫,但是這個方法需要 Server 端支援,我覺得要再實作一個 PHPRPC 介面太麻煩了。也有人建議使用 JSONP,不過似乎只能用 GET 且 Server 端必須修改。

最後採用目前比較可行又無長度限制的方式,就是透過 Flash 進行跨網域呼叫,因為 Flash 只要遠端 Server 有放置 crossdomain.xml 並且允許 Gadget 的 domain 可存取,就可使用該 Server 的服務,而 Flash 本身允許 Javascript 呼叫使用,因此我決定採用這個方法來解決跨網域問題。

目前使用 Flash 進行 ajax 的實作品似乎不少,我最早知道的版本是 fajax,可是他很久沒維護,功能也陽春不好用。第二個用的是 FlashXMLHttpReques,試用官方的功能展示頁面,確實功能上符合我的需要,但是因為他需要與 dojo 搭配使用,所以我暫時不考慮。

最後我發現了f4a,他也擁有我需要的功能,而且他只用 swfobject 作為載入 flash ,蠻符合我的需要,有一個小缺點就是 js 寫的有點亂,我稍微整理成我習慣的用法後,就是如下連結的範例:

http://gaeforjava.appspot.com/f4aTest.html

預設他呼叫我另一個 GAE/J 的服務並顯示回傳結果,你也可用來測試你的網路服務,不過要 Server 記得加上 crossdomain.xml。

image

Read Full Post »

修改 v0.10 檔案上傳功能,上傳完成後產生檔案下載連結,可將該連結分享給其他人,不過 App Engine 有限制,目前只支援小於 1MB 的檔案

image

檔案列表也支援顯示檔案大小

image

Read Full Post »

研究了一陣子又有一點小心得,發現 Google Gadget 可以內嵌在 iframe 中,而 Live Space "勉強"可用 <iframe> 於是就組合出如下效果

image

在 iGoogle 該 Gadget 的效果(比較漂亮)

image

那要怎麼內嵌 Gadget ? 語法很簡單,如下:

<iframe src="http://www.gmodules.com/ig/ifr?url=你的 gadget url&amp;output=html">

範例:上述時鐘範例

<iframe frameborder= "0" width="380" src="http://www.gmodules.com/ig/ifr?url=http://hosting.gmodules.com/ig/gadgets/file/107358429942627572426/b.xml&amp;up_firstDay=0&amp;up_clocks=%5B%5B-73.986951%2C40.756054%2C%22Bengaluru%22%2C0%5D%5D&amp;synd=open&amp;w=380&amp;h=160&amp;title=__MSG_title__&amp;lang=zh-TW&amp;country=ALL&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=html">

2009.04.28 補充:使用遠端資料的 Gadget (使用 PHPRPC)

<iframe frameborder= "0" width="380" src="http://www.gmodules.com/ig/ifr?url=http://bawbaw.deep.tw/twtraffic/twtraffic.xml&amp;output=html">

Read Full Post »

前一陣子為了學習 CSS 曾經用 Gadget 寫了一個 CSS 測試工具,原本想在我 CSS 知識庫的 Google Sies 中加入這個測試工具,並將測試結果儲存以備之後使用,原本想利用 Gadget 的 Preference 作為 CSS 和 HTML 的儲存區,可是測試後發現在 Google Sites 似乎不支援該組 API。

直到今天,我利用 GAE/J 實作一個簡單的 Service 用來存放該工具的資料,很簡單的達到儲存功能,也順利的整合進 Google Sites ^^

如下 DEMO

Read Full Post »

利用 json.org 提供的 json library 處理 json 資料
測試網址:http://gaeforjava.appspot.com/json

image

Read Full Post »

檔案上傳

研究了很久終於完成了第一版檔案上傳,我使用 Apache 的 FileUpload 處理上傳的檔案,可是因為 org.apache.commons.fileupload.disk.DiskFileItem 使用了 GAE/J 禁止的 java.rmi.server.UID(),所以我稍微修改了一下程式,使其規避 GAE/J 的限制。

有因為 GAE/J 不提供檔案系統,所以上傳資料要存放在哪裡呢?不用懷疑目前是存在 DataStore,所以我利用 JDO 將上傳的檔案存放到 DataStore 完成第一版的檔案上傳功能。

測試網址:http://gaeforjava.appspot.com/FileServlet 

上方用來上傳,下方用來取得最新的圖檔列表(目前只針對 jpeg)

image

上傳完成會顯示如下訊息

image 

如果要看你上傳的圖片請按一下 Update

image

首頁版面更新

image

管理者專屬功能

利用 web.xml 設定即可達成。

結語
雖然完成上傳功能,不過實作上有些麻煩,而且檔案有上傳Size限制,頗不方便。還好 GAE/J 下一個版本應該就會實作出小檔案上傳的功能,到時使用上應該會簡單許多。不過就算如此,檔案的大小還是受限在 1MB @_@,看來大型檔案是不是要透過分割方式來儲存~

Read Full Post »

Older Posts »