在 Struts2 中获取原始文件名

Getting original filename in Struts2

如何在 Struts2 中获取上传文件的原始文件名。目前我得到的是一个 filename.tmp 文件名,而正在上传的文件是一个 CSV,文件名与我得到的不同。这是 JSP 代码

Select 文件 改变 去掉

这是struts配置中的动作映射

        <action name="survey/send" class="surveyAction" method="send">
            <interceptor-ref name="authorizationStack"/>
            <interceptor-ref name="fileUpload">
                <param name="maximumSize">20971520</param>
            </interceptor-ref>
            <result name="success" type="tiles">orgAdmin.survey.send.settings</result>
            <result name="input" type="tiles">orgAdmin.survey.send.settings</result>
            <result name="error" type="tiles">orgAdmin.survey.send.settings</result>
        </action>

Action class 包含以下 3 个实例变量 instance with getter and setter

    public File upload;
    private String contentType;
    private String filename;

但是,upload.getName() 没有得到实际的文件名,而 contentTypefilename 属性是 null.

二传手的命名约定是

setX(File file)
setXContentType(String contentType)
setXFileName(String fileName)

其中 X 对应于 jsp 页面中 <s:file /> 标签的名称属性的值

Jsp形式

<s:form action="doUpload" method="post" enctype="multipart/form-data">
   <s:file name="upload" label="File"/>
   <s:submit/>
</s:form>

动作class

private File upload ;
private String uploadFileName ;
private String uploadContentType ;

// Getters and setters
// ActionSupport methods