struts2上传文件

struts2简化了文件上传的操作 ,简单几步即可实现文件上传

第一步:jsp页面
在jsp中的form如下:

<form action="${pageContext.request.contextPath}/fileUploadAction" method="post" enctype="multipart/form-data">
            文  件:<input type="file" name="file1"><br/>     
            <input type="submit" name="上传"><br/>    
    </form>

注意两点:enctype=”multipart/form-data” 和 中的 name为“file1”,要与我们写的action中的属性名一样

第二步:action规范
其中 如下三个属性的命字是固定的

//对应表单:<input type="file" name="file1">
private File file1;
//文件名
private String file1FileName;
//文件的类型(MIME)
private String file1ContentType;

这三个属性的命名正确的话,struts就会进行自动封装,给这三个属性赋值(前提是这三个属性有set方法)

execute方法中进行文件复制操作:

@Override
public String execute() throws Exception 
{
    /*********** 对上传文件进行处理 ***********/
    //把文件上传到upload目录
    //1、获取上传的目录路径
    String path=ServletActionContext.getServletContext().getRealPath("/upload");
    //2、创建目标文件对象
    File destFile=new File(path, file1FileName);
    //3、把上传的文件,拷贝到目标文件中
    FileUtils.copyFile(file1, destFile);
    return SUCCESS;
}

上述代码会把上传的文件写出到upload文件夹中
第三步:配置struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <package name="upload" extends="struts-default">
        <action name="fileUploadAction" class="fileupload.FileUpLoad">
            <result name="success">/e/success.jsp</result>
        </action>
    </package>

</struts>
都是一些最进本的配置没啥好说的

最后附上action类的完整代码:

package fileupload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
/**
 * @author 许湘扬 2017-5-22
 * @邮箱   547139255@qq.com
 * @说明   struts上传文件
 */
public class FileUpLoad extends ActionSupport
{
    //对应表单:<input type="file" name="file1">
    private File file1;
    //文件名
    private String file1FileName;
    //文件的类型(MIME)
    private String file1ContentType;
    public void setFile1(File file1) {
        this.file1 = file1;
    }
    public void setFile1FileName(String file1FileName) {
        this.file1FileName = file1FileName;
    }
    public void setFile1ContentType(String file1ContentType) {
        this.file1ContentType = file1ContentType;
    }
    @Override
    public String execute() throws Exception 
    {
        /*********** 对上传文件进行处理 ***********/
        //把文件上传到upload目录
        //1、获取上传的目录路径
        String path=ServletActionContext.getServletContext().getRealPath("/upload");
        //2、创建目标文件对象
        File destFile=new File(path, file1FileName);
        //3、把上传的文件,拷贝到目标文件中
        FileUtils.copyFile(file1, destFile);

        return SUCCESS;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值