首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >struts2文件上传-获取空文件名

问struts2文件上传-获取空文件名
EN

Stack Overflow用户
提问于 2015-08-19 19:51:28
回答 1查看 1.4K关注 0票数 0

我尝试上传文件,但是每当我试图上传该文件并打印文件名时,我将获得null,并生成一个.tmp文件。我遵循了mkyong的“如何-to”的这里.I,在链接.Unfortunately中也尝试了一些建议,我仍然被困在这个问题上,并且假设我犯了一个我一直在忽略的错误,我正在使用tomcat7。以下是我的档案:

jsp

代码语言:javascript
复制
<s:form id="login" name="login" method="post" action="uploadResume" enctype="multipart/form-data">
    <s:file name="uploadFile" label="Select a File to upload" size="40"/>
    <s:submit value="submit" name="submit" />
</s:form>

struts.xml

代码语言:javascript
复制
    <constant name="struts.multipart.saveDir" value="/Users/shibasish/Documents/workspace/MSVenture/src/main/resources" />
<action name="uploadResume" class="com.msventure.web.actions.CompleteProfileAction" method="uploadResume">
            <interceptor-ref name="exception"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="fileUpload">
                <param name="allowedTypes">text/plain</param>
                <param name="maximumSize">10240</param>
            </interceptor-ref>
                <result name="success">/profile.jsp</result>
                <result name="fail">/login.jsp</result>
                <result name="index">/index.jsp</result>
                  <result name="login">/talent.jsp</result>
            </action>

动作类

代码语言:javascript
复制
        private File uploadFile;
    private String uploadFileFileName;
    public String uploadResume(){
            try{
            String filePath = "/Users/shibasish/Documents";
            System.out.println("Server path:" + filePath);
            System.out.println("File Name:" + uploadFileFileName);
            File fileToCreate = new File(filePath, uploadFileFileName);          
            FileUtils.copyFile(uploadFile, fileToCreate);
            }catch(Exception e){}       
            return "success";
        }
public File getUploadFile() {
        return uploadFile;
    }

    public void setUploadFile(File uploadFile) {
        this.uploadFile = uploadFile;
    }

    public String getUploadFileFileName() {
        return uploadFileFileName;
    }

    public void setUploadFileFileName(String uploadFileFileName) {
        this.uploadFileFileName = uploadFileFileName;
    }

pom.xml

代码语言:javascript
复制
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.1</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>

请注意,在课堂上设置了变异器。

EN

回答 1

Stack Overflow用户

发布于 2015-08-19 20:41:11

我尝试了一个更完整的拦截器栈,它运行得很好。我已经将以下内容从文件上传到defaultStack拦截器:struts.xml

代码语言:javascript
复制
<action name="uploadResume" class="com.msventure.web.actions.CompleteProfileAction" method="uploadResume">
            <interceptor-ref name="defaultStack">
    <param name="fileUpload.allowedTypes">text/plain</param>
</interceptor-ref> 
        <result name="success">/profile.jsp</result>
        <result name="fail">/login.jsp</result>
        <result name="index">/index.jsp</result>
          <result name="login">/talent.jsp</result>
    </action>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32104442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档