0
点赞
收藏
分享

微信扫一扫

Struts2多文件上传

书写经典 2023-05-10 阅读 89


多文件上传和单文件上传基本一样,只是变成了数组。类不要忘了建立get set方法。            上传文件jsp页面   大头像上传:

<input type="file" name="mypic"/><br/>


                                                                                                                                                                                                 小头像上传:

<input type="file" name="mypic"/><br/>

                  那个file那个name属性的名字要和实体类的

  



private String uploader;// 上传者
private File[] mypic;// 上传文件
private String[] mypicContentType;// 上传文件类型
private String[] mypicFileName;// 上传文件的文件名
// 定义服务器上传路径


Action类

package Action;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;


public class UploadAction {


	// 定义请求参数
	private String uploader;// 上传者
	private File[] mypic;// 上传文件
	private String[] mypicContentType;// 上传文件类型
	private String[] mypicFileName;// 上传文件的文件名
	// 定义服务器上传路径
	private String savePath;
 
	public String getUploader() {
		return uploader;
	}


	public void setUploader(String uploader) {
		this.uploader = uploader;
	}


	public File[] getMypic() {
		return mypic;
	}


	public void setMypic(File[] mypic) {
		this.mypic = mypic;
	}


	public String[] getMypicContentType() {
		return mypicContentType;
	}


	public void setMypicContentType(String[] mypicContentType) {
		this.mypicContentType = mypicContentType;
	}


	public String[] getMypicFileName() {
		return mypicFileName;
	}


	public void setMypicFileName(String[] mypicFileName) {
		this.mypicFileName = mypicFileName;
	}


	public String getSavePath() {
		return savePath;
	}


	public void setSavePath(String savePath) {
		this.savePath = savePath;
	}


	public String load() throws Exception {
		// 获取服务器保存路径绝对地址
		String adsSavePath = ServletActionContext.getServletContext()
				.getRealPath(savePath);
		try {//循环处理多按个文件上传
			for (int i = 0; i < mypic.length; i++) {
				// 使用文件读写实现文件上传
				FileInputStream fis = new FileInputStream(mypic[i]);
				FileOutputStream fos = new FileOutputStream(adsSavePath
						+ File.separator + mypicFileName[i]);
				byte[] b = new byte[fis.available()];
				fis.read();
				fos.write(b);
				// 关闭流
				fis.close();
				fos.flush();
				fos.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
			return "error";
		}
		return "success";
	}


}

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>
   <package name="default" namespace="/"  extends="struts-default">
     <action name="upload" class="Action.UploadAction" method="load">
      <param name="savePath">/upload</param>
      <result name="success">success.jsp</result>
      <result name="error">error.jsp</result>
     </action>
   </package>
</struts>


上传页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>下载页面</title>
	 
  </head>
  
  <body>
      <form action="upload.action" method="post" enctype="multipart/form-data">
      上传者:<input type="text" name="uploader"/><br/>
      大头像上传:<input type="file" name="mypic"/><br/>
      小头像上传:<input type="file" name="mypic"/><br/>
    <input type="submit" value="上传"/><br/>
     </form>
  </body>
</html>


上传成功页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
<!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>
   恭喜:${uploader }上传成功<br/>
   文件上传列表:
   <c:forEach var="f" items="${mypicFileName}">
        <li>${f}</li>
   </c:forEach>
</body>
</html>



上传失败页面




举报

相关推荐

0 条评论