最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Struts2實(shí)現(xiàn)多文件上傳功能

 更新時(shí)間:2017年08月24日 09:07:05   作者:Giving_bestself  
這篇文章主要為大家詳細(xì)介紹了Struts2實(shí)現(xiàn)多文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前臺(tái)form 表單:設(shè)置method=post,enctype=multipart/form-data。

struts2在原有的上傳解析器繼承上做了進(jìn)一步封裝,更進(jìn)一步簡化了文件上傳。

Action需要使用3個(gè)屬性來封裝該文件域的信息:

(1)類型為File的*屬性封裝了該文件域?qū)?yīng)的文件內(nèi)容;
(2)類型為String的***FileName屬性封裝了該文件域?qū)?yīng)的文件的文件類型;
(3)類型為String的***ContentType屬性封裝了該文件域?qū)?yīng)的文件的類型。

具體實(shí)現(xiàn):

新建web項(xiàng)目

這里寫圖片描述

添加struts2相關(guān)包
myeclipse可直接下載,右擊項(xiàng)目,如下。

這里寫圖片描述

前臺(tái)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
 <body>
  <form action="upload.action" method="post" enctype="multipart/form-data">
    <input type="file" name="upload" multiple="multiple"/>
    <input type="submit" value="提交"/>

  </form>
 </body>
</html>

配置web.xml

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 <display-name>UploadFile</display-name>
 <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>*.action</url-pattern>
 </filter-mapping>
</web-app>

配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
  <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
  <constant name="struts.devMode" value="true"/>
  <constant name="struts.multipart.saveDir" value="/tmp"/>
  <constant name="struts.custom.i18n.resources" value="app"></constant>

  <package name="default" namespace="/" extends="struts-default">
    <action name="upload" class="com.yf.action.UploadAction">
    <result>/index.jsp</result>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    </action>
  </package>
</struts>  

后臺(tái)代碼

public class UploadAction extends ActionSupport{
  private List<File> upload;
  private List<String> uploadContentType;
  private List<String> uploadFileName;

  public List<File> getUpload() {
    return upload;
  }

  public void setUpload(List<File> upload) {
    this.upload = upload;
  }

  public List<String> getUploadContentType() {
    return uploadContentType;
  }

  public void setUploadContentType(List<String> uploadContentType) {
    this.uploadContentType = uploadContentType;
  }

  public List<String> getUploadFileName() {
    return uploadFileName;
  }

  public void setUploadFileName(List<String> uploadFileName) {
    this.uploadFileName = uploadFileName;
  }

  @Override
  public String execute() throws Exception {
    //文件保存路徑
    String path = ServletActionContext.getServletContext().getRealPath("/images");
    File file = new File(path);
    //不存在則創(chuàng)建
    if(!file.exists()){
      file.mkdir();
    }
    //循環(huán)將文件上傳到指定路徑
    for(int i = 0; i< upload.size(); i++){
      FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i)));
    }
    return SUCCESS;
  }

結(jié)果如下

這里寫圖片描述

這里寫圖片描述

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • myatisplus的saveOrUpdate的提交總是update問題

    myatisplus的saveOrUpdate的提交總是update問題

    這篇文章主要介紹了myatisplus的saveOrUpdate的提交總是update問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java 異步線程監(jiān)聽與結(jié)果回調(diào)及異常捕獲總結(jié)分析

    Java 異步線程監(jiān)聽與結(jié)果回調(diào)及異常捕獲總結(jié)分析

    異常是程序之中導(dǎo)致程序中斷的一種指令流,異常一旦出現(xiàn)并且沒有進(jìn)行合理處理的話,那么程序就將中斷執(zhí)行,這篇文章綜合介紹了異步線程監(jiān)聽與結(jié)果回調(diào)及異常捕獲
    2021-11-11
  • java正則替換sql中的參數(shù)實(shí)例代碼

    java正則替換sql中的參數(shù)實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于java正則替換sql中參數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-10-10
  • Spring Boot ActiveMQ如何設(shè)置訪問密碼

    Spring Boot ActiveMQ如何設(shè)置訪問密碼

    這篇文章主要介紹了Spring Boot ActiveMQ如何設(shè)置訪問密碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • J2EE基礎(chǔ)之EJB全面了解

    J2EE基礎(chǔ)之EJB全面了解

    下面小編就為大家?guī)硪黄狫2EE基礎(chǔ)之EJB全面了解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • 多模塊maven的deploy集成gitlab?ci自動(dòng)發(fā)版配置

    多模塊maven的deploy集成gitlab?ci自動(dòng)發(fā)版配置

    這篇文章主要為大家介紹了多模塊maven項(xiàng)目deploy集成gitlab?ci自動(dòng)發(fā)版的配置流程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • Java并發(fā)源碼分析ConcurrentHashMap線程集合

    Java并發(fā)源碼分析ConcurrentHashMap線程集合

    這篇文章主要為大家介紹了Java并發(fā)源碼分析ConcurrentHashMap線程集合,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 實(shí)例分析java中重載與重寫的區(qū)別

    實(shí)例分析java中重載與重寫的區(qū)別

    這篇文章主要介紹了實(shí)例分析java中重載與重寫的區(qū)別,需要的朋友可以參考下
    2014-07-07
  • spark中使用groupByKey進(jìn)行分組排序的示例代碼

    spark中使用groupByKey進(jìn)行分組排序的示例代碼

    這篇文章主要介紹了spark中使用groupByKey進(jìn)行分組排序的實(shí)例代碼,本文通過實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 關(guān)于springmvc報(bào)錯(cuò)404的問題

    關(guān)于springmvc報(bào)錯(cuò)404的問題

    這篇文章主要介紹了關(guān)于springmvc報(bào)錯(cuò)404的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論

岳池县| 双桥区| 七台河市| 永年县| 鄯善县| 竹溪县| 凌云县| 博湖县| 上高县| 旬阳县| 海阳市| 桐庐县| 海原县| 西丰县| 万山特区| 富平县| 休宁县| 四川省| 洮南市| 吉隆县| 上杭县| 保定市| 屏南县| 江北区| 汶川县| 新野县| 乐都县| 舟山市| 仁布县| 台东市| 舟山市| 龙井市| 安塞县| 稻城县| 桂东县| 汤原县| 武川县| 砚山县| 南靖县| 鲁山县| 菏泽市|