文件上传struts2 实现文件上传功能(3)

xiaoxiao2022-06-11  31

(三)使用struts2进行文件上传、下载 需引入两个jar包

commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar

这两个jar包在struts2.1.6版本中已经自带,较低版本需到apache网站下载,网址:http://commons.apache.org/1、单文件上传upload3.jsp

 1 <% @ page language="java" contentType="text/html; charset=GB18030" 2    pageEncoding="GB18030" %>  3 <% @ taglib prefix="s" uri="/struts-tags" %>  4 <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >  5 < html >  6      < head >  7          < meta  http-equiv ="Content-Type"  content ="text/html; charset=GB18030" >  8          < title > Insert title here </ title >  9      </ head > 10      < body > 11          < s:form  action ="upload"  method ="post"  theme ="simple" 12             enctype ="multipart/form-data" > 13              < table  align ="center"  width ="50%"  border ="1" > 14                  < tr > 15                      < td > 16                         username 17                      </ td > 18                      < td > 19                          < s:textfield  name ="username" ></ s:textfield > 20                      </ td > 21                  </ tr > 22                  < tr > 23                      < td > 24                         password 25                      </ td > 26                      < td > 27                          < s:password  name ="password" ></ s:password > 28                      </ td > 29                  </ tr > 30                  < tr > 31                      < td > 32                         file 33                      </ td > 34 35                      < td > 36                          < s:file  name ="file" ></ s:file > 37                          38                      </ td > 39                  </ tr > 40                  < tr > 41                      < td > 42                          < s:submit  value =" submit " ></ s:submit > 43                      </ td > 44                      < td > 45                          < s:reset  value =" reset " ></ s:reset > 46                      </ td > 47                  </ tr > 48              </ table > 49          </ s:form > 50      </ body > 51 </ html >

web.xml中的配置

     < filter >          < filter-name > struts2 </ filter-name >          < filter-class >             org.apache.struts2.dispatcher.FilterDispatcher         </ filter-class >      </ filter >      < filter-mapping >          < filter-name > struts2 </ filter-name >          < url-pattern > /* </ url-pattern >      </ filter-mapping >

struts.xml中的配置

 1 <? xml version="1.0" encoding="GBK"  ?>  2 <! DOCTYPE struts PUBLIC  3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  4     "http://struts.apache.org/dtds/struts-2.0.dtd" >  5       6 < struts >  7      < constant  name ="struts.i18n.encoding"  value ="gbk" ></ constant >  8      < constant  name ="struts.multipart.saveDir"  value ="c:\" ></ constant >  9      < package  name ="struts2"  extends ="struts-default" > 10          < action  name ="upload"  class ="com.test.action.UploadAction" > 11              < result  name ="success" > /upload/result3.jsp </ result > 12          </ action > 13      </ package > 14 </ struts >

UploadAction.java

 1 package  com.test.action;  2  3 import  java.io.File;  4 import  java.io.FileInputStream;  5 import  java.io.FileOutputStream;  6 import  java.io.InputStream;  7 import  java.io.OutputStream;  8  9 import  org.apache.struts2.ServletActionContext; 10 11 import  com.opensymphony.xwork2.ActionSupport; 12 13 @SuppressWarnings( " serial " ) 14 public   class  UploadAction  extends  ActionSupport  {15    private String username;16    private String password;17    private File file;18    private String fileFileName;19    private String fileContentType;2021    public String getUsername() {22        return username;23    }2425    public void setUsername(String username) {26        this.username = username;27    }2829    public String getPassword() {30        return password;31    }3233    public void setPassword(String password) {34        this.password = password;35    }3637    public File getFile() {38        return file;39    }4041    public void setFile(File file) {42        this.file = file;43    }4445    public String getFileFileName() {46        return fileFileName;47    }4849    public void setFileFileName(String fileFileName) {50        this.fileFileName = fileFileName;51    }5253    public String getFileContentType() {54        return fileContentType;55    }5657    public void setFileContentType(String fileContentType) {58        this.fileContentType = fileContentType;59    }6061    @SuppressWarnings("deprecation")62    @Override63    public String execute() throws Exception {64        InputStream is = new FileInputStream(file);65        String root = ServletActionContext.getRequest().getRealPath("/upload");66        File destFile = new File(root, this.getFileFileName());67        OutputStream os = new FileOutputStream(destFile);68        byte[] buffer = new byte[400];6970        int length = 0;7172        while ((length = is.read(buffer)) > 0{73            os.write(buffer, 0, length);74        }75        is.close();76        os.close();77        return SUCCESS;78    }79}

结果: 

相关资源:ajaxFileUpload struts2实现多文件上传(动态添加文件上传框)
转载请注明原文地址: https://www.6miu.com/read-4930436.html

最新回复(0)