2011-04-23 59 views
0

我的Grails應用已成功上傳,然後解析MultipartFile用下面的代碼:Groovy中確定MultipartFile的路徑

def file = request.getFile('rawReport') 
def report = new XmlSlurper().parse(file.inputStream) 

我的問題:我所需要的原始文件的路徑(「rawReport」 )可以在調試器的「表達式」視圖中看到路徑信息,但找不到將按照需要返回文件路徑的方法。

我找到了很多「我想要的類型的方法」here,但它們都是簡單的文件,而不是MultipartFiles。當我發現「getStorageDescription」爲MultipartFiles here時,我感到一陣希望,但是當它返回「內存」(字面意義上......這有什麼好處?!)時,希望是破滅的。

這很令人沮喪,因爲我可以看到碎片我可以在調試器中使用... STS表達式視圖:名稱:文件 - >存儲庫 - >路徑「\\家$ \幸福\等待\你\這裏...」

任何幫助將是最讚賞。

回答

1

一般作爲getOriginalFilename()方法的Javadoc描述它不可用:http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/multipart/commons/CommonsMultipartFile.html#getOriginalFilename%28%29

我猜,這是一個安全問題。我發現它和Firefox和Chrome一樣適合我,甚至Opera也沒有包含完整的路徑。因此,即使您可以在本地獲取信息,您也無法相信一般情況下可以使用完整路徑。

您可能會尋找一個基於Flash的上傳器,它不受瀏覽器限制的約束。

+0

謝謝你的回答和建議。我將研究候選插件,但必須同意您對導致安全漏洞的暴露路徑的假設。然而,我的應用程序不是基於網絡的,而且我可以控制用戶可能使用的瀏覽器的選擇。但是,我們仍然不能依賴於我們無法控制的100%......(不幸的是,我無法控制100%的時間。)再次感謝! – Mike 2011-04-24 03:25:37