2011-09-28 81 views
0

我有一個方法blobstoreService.getUploadedBlobs()的問題。我有一個JSP頁面中至極一個我這樣設置的上傳:方法的奇怪行爲getUploadedBlobs

<formname='form' action='<%= blobstoreService.createUploadUrl("/Edit_Engine") %>' method='POST' enctype='multipart/form-data' > 
<input label='...' multiple='false' name='myFile' /> 
//...and multiple input for text 
</form> 

,我檢索該代碼與我的servlet:

java.util.Map<String,BlobKey> blobs = blobstoreService.getUploadedBlobs(req); 
BlobKey blobK = blobs.get("myFiles[]"); //I don't know why I need to add the characters 's[]' at the end... 

但行爲很奇怪。我第一次上傳圖片時,一切正常。然而,第二次,我發送我的表單時沒有上傳somehting(只有文本數據),然後我的java代碼找到了BlobKey。但是,這個BlobKey似乎是之前發佈的數據,或者是數據損壞。 我的意思是不正常,因爲當我在本地主機上部署此版本時,如果表單沒有上傳文件,getUploadedBlobs方法將返回一個空的HashMap。但是,當我在Google服務器上部署時,如果表單沒有上傳文件,則getUploadedBlobs方法似乎會返回帶有錯誤數據的HashMap。

你能幫我嗎?或者告訴我,如果這behaviro是正常的...

非常感謝,

蝙蝠

+0

我認爲,在所有情況下,如果我發送一個沒有文件的表單,谷歌blobstore創建一個空的blob ... – user376112

回答

0

如果你得到一個有效的BlobKey,則myFiles[]是最有可能在提供給文件輸入字段的名稱表格。是這樣嗎?這似乎是一個輸入字段的奇怪名稱。您是否使用模板庫來幫助從JSP生成HTML?

+0

是的,我使用dojo渲染輸入和上傳..所以,你是對的,dojo改變名稱我tkink所以.. – user376112