2011-06-29 119 views
0

如果我正在使用GWT文件部件和表單面板,有人可以解釋如何處理在谷歌應用程序引擎上的blobstore上傳嗎?GWT GAE通過Blob上傳

回答

1

Google blobstore專門設計用於通過http上傳和提供blob。 Blobstore服務(使用BlobstoreServiceFactory.getBlobstoreService()獲得)生成http後操作,供您在html表單中使用。通過發佈文件將其上傳到blobstore。當你生成這個動作你提供的路徑,你可以訪問上傳blob鍵處理程序(servlet的):

Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req); 
BlobKey blobKey = blobs.get("data"); 

。注意,「數據」是您的窗體文件中的字段。你所擁有的只是blob(你的文件)的關鍵。從這裏你採取控制 - 你可以保存該鍵後和/或即可食用頁面上的斑點(使用鍵):

BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); 
blobstoreService.serve(blobKey, res); 

當然,詳見谷歌documentation

,它與谷歌的映射集成(起碼的map-reduce)服務(工作正在進行中),讓您處理由線上傳的斑點線文件Blob存儲區的一個不錯的功能:http://ikaisays.com/2010/08/

+0

在客戶端,有什麼我應該設置表單的動作爲 – Noor

+0

表單將如下所示: 'String uploadUrl = blobstoreService.createUploadUrl(「/ upload」); out.println(「

「);' 其中/ upload是映射到我的servlet,它處理事後將blob保存到blobstore(答案中的第一個代碼片段)。 – topchef

+0

我使用GWT GAE上載,它成功上傳給我servlet.gupld?BLOB鍵= lSPbUItHU2v6jKhMUrcF7gDQUlofRktEPkocaPpO2Y4wwOQwd1-Tt51HUpDom3HPKAix3xxMbUD3eFnpQoLVIvXwYuJ_i7EU30RCTVwRJf_fvg但是當我使用URL設置,它ouputting文件未找到 – Noor