本文实例为大家分享了JS Struts2多文件上传的具体代码,供大家参考,具体内容如下
1、JSP页面:
JS控制增加删除多个上传文件框,代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@include file="../../_head.html"%>
文件上传
<%@ include file="/common/message.jsp"%>
文件上传(可同时上传多份文件)
| 序号 | 文件名 | 上传时间 |
|---|---|---|
2、Action后台处理上传文件:
//uploadFile对应页面 private ListuploadFile; //文件名对应uploadFile+“FileName”,要不获取不到文件名 private List uploadFileFileName; // 文件上传 public String mUploadFile() { if (null == uploadFile) { this.addActionError("请上传文件!"); } else { String fileName = ""; try { //在自己代码中控制文件上传的服务器目录 String directory = ServletActionContext.getServletContext().getRealPath("/uploads"); //判断该目录是否存在,不存在则创建 FileUtil.makeDir(directory); //循环处理上传的文件 for(int i=0,j=uploadFile.size();i FileUtil代码如下:
public class FileUtil { private static final int BUFFER_SIZE = 16 * 1024; public static void uploadFile(File src, File dst) throws IOException { InputStream in = null; OutputStream out = null; try { in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE); out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE); byte[] buffer = new byte[BUFFER_SIZE]; while (in.read(buffer) > 0) { out.write(buffer); } } finally { if (null != in) { in.close(); } if (null != out) { out.close(); } } } public static String getExtention(String fileName) { int pos = fileName.lastIndexOf("."); return fileName.substring(pos); } public static void makeDir(String directory) { File dir = new File(directory); if (!dir.isDirectory()) { dir.mkdirs(); } } public static String generateFileName(String fileName) throws UnsupportedEncodingException { DateFormat format = new SimpleDateFormat("yyMMddHHmmss"); String formatDate = format.format(new Date()); String extension = fileName.substring(fileName.lastIndexOf(".")); fileName = new String(fileName.getBytes("iso8859-1"), "gb2312"); return fileName + "_" + formatDate + new Random().nextInt(10000) + extension; } }扩展:
1.可以实现带进度条的上传与下载;
2.可以用xml文件记录上传的文件清单,并且可以根据页面对上传文件的操作来修改相应的xml文件;
完毕!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



