之前寫過一篇文章,關于Struts2文件上傳:http://www.companysz.com/lichenwei/p/3927964.html
現在來說下多文件上傳,其實就把上傳文件當成是一個數組去處理,和單文件上傳是一樣的思路,直接貼一段代碼:
uploads.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglibUploadsAction.java
package com.lcw.struts2.upload;import java.io.File;import java.io.IOException;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadsAction extends ActionSupport { // <s:file label="上傳文件:" name="upload"></s:file> private File[] upload;// 命名應該和上傳頁面name屬性值保持一致 private String[] uploadContentType;// 屬性值+ContentType private String[] uploadFileName;// 屬性值+FielName public void setUpload(File[] upload) { this.upload = upload; } public void setUploadContentType(String[] uploadContentType) { this.uploadContentType = uploadContentType; } public void setUploadFileName(String[] uploadFileName) { this.uploadFileName = uploadFileName; } public String upload() { for (int i = 0; i < upload.length; i++) { File destFile = new File(ServletActionContext.getServletContext() .getRealPath("/uploads") + "/" + uploadFileName[i]); try { // 工具類 FileUtils.copyFile(upload[i], destFile); } catch (IOException e) { e.printStackTrace(); } } return SUCCESS; }}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.devMode" value="true" /> <constant name="struts.multipart.maxSize" value="20000000000"></constant> <!-- 全局國際化配置 --> <constant name="struts.custom.i18n.resources" value="messages"></constant> <package name="struts2test" extends="struts-default"> <action name="uploads" class="com.lcw.struts2.upload.UploadsAction" method="upload"> <result name="success">/index.jsp</result> <result name="input">/upload.jsp</result> </action> </package></struts>來看下效果圖:
新聞熱點
疑難解答