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

struts2中實(shí)現(xiàn)多個(gè)文件同時(shí)上傳代碼

 更新時(shí)間:2013年04月17日 11:35:42   作者:  
struts2中實(shí)現(xiàn)多個(gè)文件同時(shí)上傳代碼,需要的朋友可以參考一下

在upload.jsp頁(yè)面中將多個(gè)文件域?qū)ο竺麨橄嗤拿?,這樣在action中就可以將多個(gè)文件域解析成一個(gè)數(shù)組,數(shù)組的大小就是文件域的個(gè)數(shù),同時(shí)一個(gè)文件域解析成三個(gè)對(duì)應(yīng)的變量,因此多個(gè)文件域?qū)?yīng)三個(gè)數(shù)組,其中每個(gè)數(shù)組的大小就是文件域的個(gè)數(shù)。jsp頁(yè)面代碼如下:

復(fù)制代碼 代碼如下:

<form action="upload.action" name="uploadForm" method="post" enctype="multipart/form-data">
文件標(biāo)題:<input type="text" name="title"/><br/>
選擇文件-:<input type="file" name="upload"/><br/>
選擇文件二:<input type="file" name="upload"/><br/>
選擇文件三:<input type="file" name="upload"/><br/>
<input type="submit" value="upload"/>

</form>

對(duì)應(yīng)的Action依次遍歷所有文件域,然后生成對(duì)應(yīng)的輸入文件流,輸出文件流在指定的服務(wù)器保存路徑中添加對(duì)應(yīng)的輸出文件流保存文件。同時(shí)動(dòng)態(tài)指定服務(wù)器上文件的 保存路徑。

action代碼如下:

復(fù)制代碼 代碼如下:

package com.inspur.action;

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

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
private String title;
private File[] upload;
private String[] uploadFileName;
private String[] uploadContentType;
private String savePath;

public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public File[] getUpload() {
return upload;
}
public void setUpload(File[] upload) {
this.upload = upload;
}
public String[] getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String[] getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String upload()throws Exception{
File[] files=this.getUpload();
for(int i=0;i<files.length;i++){
FileOutputStream fos=new FileOutputStream(this.getSavePath()+"\\"+this.getUploadFileName()[i]);
byte[] buffer=new byte[1024];
FileInputStream fis=new FileInputStream(files[i]);
int len=0;
while((len=fis.read(buffer))>0){
fos.write(buffer,0,len);
}
}


return SUCCESS;
}

}

struts.xml文件配置如下:配置文件上傳的攔截器,允許 的上傳文件類(lèi)型,上傳文件大小限制,同時(shí)引入defaultStack攔截器和上傳文件在服務(wù)器上的保存位置

復(fù)制代碼 代碼如下:

<struts>
<constant name="struts.custom.i18n.resources" value="message"></constant>
<constant name="struts.i18n.encoding" value="gbk"></constant>
<package name="uploadMult" extends="struts-default" namespace="/">
<action name="upload" class="com.inspur.action.UploadAction" method="upload">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
<param name="maximumSize">20000000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/upload</param>
<result name="success">/success.jsp</result>
<result name="input">/upload.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>

</struts>


web.xml文件代碼如下:配置了struts-cleanup過(guò)濾器,對(duì)文件的上傳功能沒(méi)有直接的影響,但是作為struts核心過(guò)濾器的輔助類(lèi)是系統(tǒng)更加穩(wěn)定,消除未知的異常。
復(fù)制代碼 代碼如下:

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

在上傳成功界面顯示所有上傳的圖片:

success.jsp頁(yè)面代碼如下:

復(fù)制代碼 代碼如下:

文件標(biāo)題:<s:property value="title"/><br/>
第一個(gè)圖片:<img alt="first" src="<s:property value="'upload/'+uploadFileName[0]"/>"/><br/>
第二個(gè)圖片:<img alt="second" src="<s:property value="'upload/'+uploadFileName[1]"/>"/><br/>

strus2同樣支持使用list同時(shí)上傳多個(gè)文件,其原理和數(shù)組是相同的,沒(méi)有根本的差別。只不過(guò)就是將數(shù)組全部改成list。并且修改list的訪問(wèn)方法就可以用list來(lái)封裝文件域參數(shù)。實(shí)現(xiàn)多個(gè)文件的同時(shí)上傳。

相關(guān)文章

  • Mybatis plus 配置多數(shù)據(jù)源的實(shí)現(xiàn)示例

    Mybatis plus 配置多數(shù)據(jù)源的實(shí)現(xiàn)示例

    這篇文章主要介紹了Mybatis plus 配置多數(shù)據(jù)源的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Docker 存儲(chǔ)驅(qū)動(dòng)詳細(xì)介紹

    Docker 存儲(chǔ)驅(qū)動(dòng)詳細(xì)介紹

    這篇文章主要介紹了Docker 存儲(chǔ)驅(qū)動(dòng)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • java 排序算法之冒泡排序

    java 排序算法之冒泡排序

    這篇文章主要介紹了java 排序算法之冒泡排序,文中運(yùn)用大量的代碼講解相關(guān)知識(shí),非常詳細(xì),感興趣的小伙伴可以參考一下
    2021-09-09
  • JAVA 統(tǒng)計(jì)字符串中中文,英文,數(shù)字,空格,特殊字符的個(gè)數(shù)

    JAVA 統(tǒng)計(jì)字符串中中文,英文,數(shù)字,空格,特殊字符的個(gè)數(shù)

    這篇文章主要介紹了JAVA 統(tǒng)計(jì)字符串中中文,英文,數(shù)字,空格,特殊字符的個(gè)數(shù) ,本文通過(guò)一段代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • javax NotBlank和Email注解失效的解決

    javax NotBlank和Email注解失效的解決

    這篇文章主要介紹了javax NotBlank和Email注解失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • mybatis數(shù)組和集合的長(zhǎng)度判斷及插入方式

    mybatis數(shù)組和集合的長(zhǎng)度判斷及插入方式

    這篇文章主要介紹了mybatis數(shù)組和集合的長(zhǎng)度判斷及插入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能

    java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能

    這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 深入分析java文件路徑的詳解

    深入分析java文件路徑的詳解

    本篇文章是對(duì)java文件路徑進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • IDEA中maven依賴(lài)報(bào)紅的問(wèn)題解決辦法

    IDEA中maven依賴(lài)報(bào)紅的問(wèn)題解決辦法

    這篇文章主要給大家介紹了關(guān)于IDEA中maven依賴(lài)報(bào)紅的問(wèn)題解決辦法,在使用IDEA過(guò)程中,經(jīng)常會(huì)出現(xiàn)maven依賴(lài)報(bào)紅的問(wèn)題,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java線程同步問(wèn)題--哲學(xué)家就餐

    Java線程同步問(wèn)題--哲學(xué)家就餐

    這篇文章主要介紹了Java線程同步問(wèn)題,線程的同步是保證多線程安全訪問(wèn)競(jìng)爭(zhēng)資源的一種手段。線程的同步是Java多線程編程的難點(diǎn),下面文章舉例的方式講解Java線程同步,具有一定的參考價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

北川| 奉节县| 天水市| 伊吾县| 庄浪县| 淮北市| 松潘县| 忻州市| 信宜市| 临沧市| 平山县| 庆安县| 泸西县| 桑日县| 浪卡子县| 北京市| 葫芦岛市| 休宁县| 资溪县| 临湘市| 微山县| 黑龙江省| 博白县| 宽城| 新绛县| 辽宁省| 江源县| 科尔| 栾城县| 彰化县| 水城县| 东源县| 云浮市| 嵊州市| 天祝| 惠东县| 维西| 来凤县| 门头沟区| 河池市| 上虞市|