当前位置:编程学习 > JAVA >>

Struts2实现单文件上传

先配置一下web.xml

[html]
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
 
    <filter> 
        <filter-name>struts2</filter-name> 
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
        <init-param> 
            <param-name>config</param-name> 
            <param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value> 
        </init-param> 
    </filter> 
    <filter-mapping> 
        <filter-name>struts2</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
     
</web-app> 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">

 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 
</web-app>
新建一个上传页面:upload.jsp

[html
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title></title> 
</head> 
<body> 
    <form action="upload.action" method="post" enctype="multipart/form-data"> 
        file:<input type="file" name="file" /><br> 
             <input type="submit" value="submit"/> 
    </form> 
</body> 
</html> 

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
 <form action="upload.action" method="post" enctype="multipart/form-data">
  file:<input type="file" name="file" /><br>
    <input type="submit" value="submit"/>
 </form>
</body>
</html>
 

UploadAction.java:

[java]
package com.struts2.action; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 
 
import org.apache.struts2.ServletActionContext; 
 
import com.opensymphony.xwork2.ActionSupport; 
 
public class UploadAction extends ActionSupport { 
 
    private static final long serialVersionUID = 1L; 
 
    /** 文件 */ 
    private File file; 
 
    /** 文件名 */ 
    private String fileFileName; 
 
    /** 文件类型 */ 
    private String fileContentType; 
 
    public File getFile() { 
        return file; 
    } 
 
    public void setFile(File file) { 
        this.file = file; 
    } 
 
    public String getFileFileName() { 
        return fileFileName; 
    } 
 
    public void setFileFileName(String fileFileName) { 
        this.fileFileName = fileFileName; 
    } 
 
    public String getFileContentType() { 
        return fileContentType; 
    } 
 
    public void setFileContentType(String fileContentType) { 
        this.fileContentType = fileContentType; 
    } 
 
    @Override 
    public String execute() throws Exception { 
 
        String uploadPath = ServletActionContext.getServletContext() 
                .getRealPath("/upload"); 
 
        InputStream is = new FileInputStream(file); 
        OutputStream os = new FileOutputStream(new File(uploadPath, 
                this.fileFileName)); 
 
        int length = 0; 
       

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,