struts文件上传(单文件)

第01步:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 

第02步:编写action类

package com.self.action;

import java.io.File;

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

import com.opensymphony.xwork2.ActionContext;

/**文件上传**/
public class FileUpload {
    private File image;//得到上传的文件
    private String imageFileName;//获取上传文件的名称,命名规则:页面属性名+FileName
    private String imageContentType;//得到上传文件的类型
    
    public FileUpload() {
    }
    
    /**上传方法**/
    public String uploadFile(){
        try {
        String realPath=ServletActionContext.getServletContext().getRealPath("/images");
        System.out.println("工程路径(/images路径):"+realPath);
        if(image!=null){
            System.out.println("已经获得上传文件!");
            File parentFile=new File(realPath);//指定文件保存路径
            if(!parentFile.exists()){//保存路径不存在,则创建
                parentFile.mkdirs();
            }
            File saveFile=new File(parentFile,imageFileName);//parentFile:保存路径,imageFileName:保存文件名
            FileUtils.copyFile(image, saveFile);//将上传的image复制到saveFile中
            ActionContext.getContext().put("message", "保存成功!");
        }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "tsuccess";
    }

    public File getImage() {
        return image;
    }

    public void setImage(File image) {
        this.image = image;
    }

    public String getImageFileName() {
        return imageFileName;
    }

    public void setImageFileName(String imageFileName) {
        this.imageFileName = imageFileName;
    }

    public String getImageContentType() {
        return imageContentType;
    }

    public void setImageContentType(String imageContentType) {
        this.imageContentType = imageContentType;
    }


}

 

第03步:配置struts.xml

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

<struts>
    <constant name="struts.action.extension" value="do,action"/>
    
    <package name="transform" namespace="/" extends="struts-default">
        <action name="list_*" class="com.self.action.FileUpload" method="{1}">
            <result name="tsuccess">
                /outdata.jsp
            </result>
        </action>
    </package>
</struts>

 

第04步:编写界面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <body>
      <form method="post" action="list_uploadFile.action" enctype="multipart/form-data">
          文件:<input type="file" name="image">
          <BR>
          <input type="submit" value="上传文件">
      </form>
  </body>
</html>

 

第05步:注意事项

保存路径:控制台输出有,
form表单方法:method="post",
form表单类型:enctype="multipart/form-data",
form表单input名字:同action里面属性名"image"

需要导入包:  

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。