【问题标题】:Grails 3.2 File Upload Error (FileNotFoundException )Grails 3.2 文件上传错误 (FileNotFoundException )
【发布时间】:2019-11-26 17:19:08
【问题描述】:

我正在尝试在涉及文件上传的 Windows 10 上使用 Tomcat 8 运行 Grails 3.2 Web 应用程序。 webApp 正确启动,但是当我尝试远程上传任何文件时,我不断收到以下文件错误。请注意,消息中有两个绝对路径卡在一起,这将导致无效的文件规范。当我使用 localhost 作为 IP 地址访问主机内部的应用程序时,我没有收到此错误。任何帮助表示赞赏。

<g:uploadForm name="sstForm" controller="sstSetup" method="POST" >
    <input id="w-mdf" type="file" name="wMDF" />&nbsp;&nbsp;

    <div class="yui3-u-25-100" id="setup-submit">
        <g:actionSubmit class="input block-page" name="submit" value="Submit" action="setupAction" onclick="return validateInput();"/>
        <g:actionSubmit class="inputGrey block-page" name="cancel" value="Cancel" action="cancel"/>
    </div>
</g:uploadForm>

然后在服务器端,我在控制器中抓取 MultiPart 文件对象并调用 tranferTo 将其转换为普通文件

File fileDest = new File("Path to some destination and file name")

multipartFile.transferTo(fileDest)

这里没有什么复杂的。然而,当上传来自远程位置时,它会抛出 FileNotFoundException。

错误:java.io.FileNotFoundException: D:\Users\RWSK70\Documents\Clark\CIM\Misc\Drools\DroolsIntelliJProject\drools-app\target\classes\rules\C:\Users\RWSK70\Documents\Clark\!!\CIM\Misc\Drools\DroolsIntelliJProject \drools-app\src\rules\application\1233275_RSF_v243.txt (文件名、目录名或卷标语法不正确)

【问题讨论】:

  • 可能发生的原因有很多。您必须在您的应用中显示一些相关代码才能获得可靠的答案。
  • 除了用于文件上传的 Grails 3 样板代码之外,上传中涉及的自定义代码并不多。
  • new File("Path to some destination and file name") - 你漏掉了有趣的部分。路径是硬编码的还是某些变量的值?
  • 文件路径不是硬编码的。 grails 3 web 表单提供了一个文件选择器,用于将应用程序指向输入文件的位置。如果不是来自应用程序主机 (localhost) 的任何文件路径都会引发相同的错误。很奇怪。
  • 我无法重现。如果您认为这是框架的问题,请在github.com/grails/grails-core/issues 提出问题并链接到演示该行为的示例应用程序,我们可以解决它。

标签: java grails


【解决方案1】:

我找到了问题。这是由我处理上传的 Multipart 文件的方式引起的。 Servlet 规范允许客户端在调用 multipart.getOriginalFilename() 时返回文件名或文件的绝对路径。我错误地假设客户总是会根据经验返回简单的文件名。这是一个错误的假设。事实证明,在这个生产环境中,他们的浏览器发送的是文件的绝对路径,而不是应用程序所期望的简单文件名,这并不顺利。 ——菲利克斯·安德鲁斯 12 月 2 日 18:53

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 2010-09-17
    • 2011-05-15
    相关资源
    最近更新 更多