来自JavaDocs:
@MultipartConfig注释支持以下可选属性:
location:文件系统上目录的绝对路径。 location属性不支持相对于应用程序上下文的路径。此位置用于在处理部件时或文件大小超过指定的fileSizeThreshold设置时临时存储文件。默认位置为“”。
然而,
时 location="\Temp"
正在上传的文件位于:
\Servers\IBM\wlp\usr\servers\app\workarea\org.eclipse.osgi\113\data\temp\default_node\SMF_WebContainer\app-ear\app-1.0-SNAPSHOT\Temp\upload__4529d7ce_15f90e11b66__7ff3_00000002.tmp
这不是配置中给出的绝对路径。
我们如何指定正确的文件夹?
更新:
见保罗的答案如下。将'C:/ Temp'指定为位置就可以了。
答案 0 :(得分:0)
Servlet 3.0规范在@MultipartConfig的描述中非常模糊。但是,最新版本的Servlet规范说明如下:
javax.servlet.annotation.MultipartConfig的location属性 并将其元素解释为 绝对路径,默认为 javax.servlet.context.tempdir。如果指定了相对路径,则为 将相对于tempdir位置。绝对路径的测试 vs相对路径必须通过java.io.File.isAbsolute完成。
Windows在这种情况下平台的重要性是因为java.io.File.isAbsolute()行为取决于所使用的操作系统:
所以看起来isAbsolute()在你的情况下返回false,如果你遵循File JavaDoc中的指导,你应该能够获得你想要的文件。