0

尝试在 struts2 中上传图像时,图像未上传并显示以下 msg 无法找到“struts.multipart.saveDir”属性设置。默认为 javax.servlet.context.tempdir

4

2 回答 2

2

由于 S2 的构建 din 功能,您收到此消息。您需要告诉 S2 文件上传拦截器您要将上传的文件放置在文件中的位置,或者使用文件中struts.multipart.saveDir的属性struts.property或作为文件中的常量,struts.xml例如

Struts 属性文件

struts.multipart.saveDir=location of your choice

struts.xml 文件

<constant name="struts.multipart.saveDir" value="your location" />

如果未设置此属性,则默认为javax.servlet.context.tempdir.Sine S2 将上传文件放在临时目录中,以防您未指定 saveDir 但一旦过程完成,为了清理过程,它将删除该临时文件,因此请确保您已设置 saveDir 参数,或者您应该将逻辑放入您的操作类中以从那里选择文件并将其移动到您选择的位置。

有关 S2 文件上传的详细信息,请阅读官方文档

于 2012-04-19T14:42:53.063 回答
2

这是手动配置,一旦文件上传,您必须明确处理保存文件(出于安全原因服务器立即删除文件。)

import org.apache.commons.io.FileUtils;

String fullFileName = "d:/temp/"+uploadFileName;

File destFile = new File(fullFileName);

FileUtils.copyFile(upload, destFile);

来源:文件上传

你可以在 struts.properties 文件中配置它

struts.multipart.saveDir - 上传文件的存放目录。如果未设置此属性,则默认为 javax.servlet.context.tempdir。

将上传的文件放在 /tmp 中。我的应用程序会将它们移动到最终目的地

 struts.multipart.saveDir=/tmp
于 2012-04-19T14:14:24.417 回答