2011-04-23 77 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