struts2 文件上传

1. action中加上file属性

2. form表单中加上 input type="file"

3. form表单属性加上enctype="multipart/form-data"

4. action类中加上xxxFileName, xxxContentType属性,以便获取文件名和类型

5. 配置<constant name="struts.multipart.saveDir" value="D:/TDDOWNLOAD" />属性

 

package com.wolfgang.action;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionSupport;

@Controller("uploadFile")
public class FileUploadAction extends ActionSupport{
    private File uploadfile;
    private String uploadfileFileName;
    private String uploadfileContentType;

    public File getUploadfile() {
        return uploadfile;
    }

    public String getUploadfileFileName() {
        return uploadfileFileName;
    }



    public void setUploadfileFileName(String uploadfileFileName) {
        this.uploadfileFileName = uploadfileFileName;
    }



    public String getUploadfileContentType() {
        return uploadfileContentType;
    }

    public void setUploadfileContentType(String uploadfileContentType) {
        this.uploadfileContentType = uploadfileContentType;
    }

    public void setUploadfile(File uploadfile) {
        this.uploadfile = uploadfile;
    }

    public String upload()
    {
        try {
            FileUtils.copyFile(uploadfile, new File("D:/baiduyundownload/myeclipse.10/MyEclipse 10/"+uploadfileFileName));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return SUCCESS;
    }
    
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'upload.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <form action="uploadFile" enctype="multipart/form-data"  method="post">
        选择文件:<input type="file" name="uploadfile"/></br>
        <input type="submit" value="提交"/>
    </form>
  </body>
</html>

 ServletActionContext.getServletContext().getRealPath("/upload_files/")+"/"+uploadfileFileName

可以获取当前部署服务的绝对地址

 

 

posted @ 2013-12-07 12:25  holycrap  阅读(187)  评论(0编辑  收藏  举报