jsp文件
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<html:html lang="true">
<head>
<title>addfile.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<SCRIPT LANGUAGE="JavaScript">
<!--
var n = 1;
function add(){
if(n>5){
alert("不能在加了");
return;
}
var otable = document.getElementById("tablee");
var orow=otable.insertRow();
var ocol2 = orow.insertCell();
var ocol3 = orow.insertCell();
var ocol4 = orow.insertCell();
ocol2.innerHTML ="<input type=file name=files+"+n+">";
ocol3.innerHTML ="<input type='button' value='添加' onClick='add()' />";
ocol4.innerHTML ="<input type='button' value='删除' onClick='javascript:deleteRow();return false;' />";
n++;
}
function deleteRow(){
if(n<=1){
alert("不能在删了");
return;
}
var otable = document.getElementById("tablee");
// var rowIndex = event.srcElement.parentElement.parentElement.parentElement.rowIndex;
var rowIndex =event.srcElement.parentElement.parentElement.rowIndex
/*
event 事件
srcElement button
parentElement 上1层td
parentElement 上1层tr
rowIndex tr的rowIndex
*/
otable.deleteRow(rowIndex);
n--;
}
//-->
</SCRIPT>
</head>
<body>
<html:form action="/file.do?method=add" enctype="multipart/form-data">
<table id="tablee">
<tr>
<td>文件上传</td>
<td> 添加</td>
<td> 删除</td>
</tr>
<tr>
<td> <input type="file" name="files"> </td>
<td>
<input type="button" value="添加" onClick="add()" />
</td>
<td>
<input type="button" value="删除" onClick="deleteRow()" />
</td>
</tr>
</table>
<html:submit></html:submit>
</html:form>
</body>
</html:html>
action
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.hcwy.struts.action;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import com.hcwy.struts.form.FileForm;
/**
* MyEclipse Struts
* Creation date: 05-09-2008
*
* XDoclet definition:
* @struts.action path="/file" name="fileForm" input="/form/file.jsp" parameter="method" scope="request" validate="true"
*/
public class FileAction extends DispatchAction {
private static long uuidCount = 0;
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
FileForm fileForm = (FileForm) form;
int i=0;
Hashtable files = fileForm.getMultipartRequestHandler().getFileElements();
for(Map.Entry<String,FormFile> entry : (Set<Map.Entry<String,FormFile>>)(files.entrySet())) {
FormFile ff=entry.getValue();
up(ff);
i++;
}
System.out.println(i);
return null;
}
//保存
public static void up(FormFile ff){
String dir1=getUUid();// + "."+ (ff.getFileName().split("\\.")[1]);
String dir ="C:/upload"+"/"+dir1;
try {
OutputStream out = new FileOutputStream(new File(dir));
byte b[] = ff.getFileData();
out.write(b);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//UUID
public static String getUUid() {
uuidCount++;
long time = System.currentTimeMillis();
String tmpStr="0000"+Long.toHexString(uuidCount);
String uuid = Long.toHexString(time) + tmpStr.substring(tmpStr.length()-4)
+ Long.toHexString(Double.doubleToLongBits(Math.random()));
uuid = uuid.substring(0, 24).toUpperCase();
return uuid;
}
}
分享到:
相关推荐
在标题和描述中提到的“struts实现多文件上传”是一个常见但相对复杂的需求,特别是对于初学者。下面我们将详细探讨如何在Struts框架中实现这一功能。 首先,我们需要理解Struts处理文件上传的基本原理。在Struts中...
Struts框架作为Java Web开发中非常成熟的一个MVC框架,支持多种方式实现文件上传功能。本文将详细介绍如何利用Struts框架实现多文件上传。 #### 二、Struts框架简介 Struts是一个开源的Java Web应用框架,基于MVC...
### Struts 实现多文件上传知识点解析 #### 一、Struts框架简介 在深入了解如何使用Struts框架实现多文件上传之前,我们首先简要回顾一下Struts框架的基础概念及其重要性。 Struts是一个开源的MVC(Model-View-...
总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。
文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
首先,要实现Struts2的文件上传,必须引入必要的依赖库。主要需要两个Apache Commons库:`commons-fileupload-1.2.2.jar`和`commons-io-2.0.1.jar`。这两个库提供了文件上传的基础功能,使得Struts2能够处理`...
本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...
在实现文件上传时,必须注意以下安全问题: 1. **文件类型检查**:限制上传的文件类型,防止恶意用户上传可执行文件或脚本。 2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **...
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...
### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...
在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...
以下将详细介绍Struts实现多文件上传的过程、所需技术以及相关的注意事项。 首先,我们需要了解Struts2中的文件上传依赖于`commons-fileupload`和`commons-io`这两个Apache Commons库。`commons-fileupload`用于...
Struts 是一个基于MVC(Model-View-Controller)...总结,Struts 实现文件上传涉及到配置、表单设计、Action处理和安全控制等多个环节。理解并熟练掌握这些知识点,能帮助开发者在实际项目中高效地处理文件上传需求。
本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...
在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...
### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中实现单个文件的上传。 ##### JSP 页面设计 首先,我们需要在...
在这个“Struts1实现文件上传源码”实例中,我们将深入探讨如何利用Struts1框架来处理文件上传操作。 在Web应用中,文件上传功能是非常常见的,比如用户上传头像、提交文档等。Struts1提供了ActionForm类和一系列...
要实现文件上传,你需要完成以下步骤: 1. **配置Struts2上传插件**: 在`struts.xml`配置文件中,添加上传插件的配置,确保它启用并指定了临时文件存储路径: ```xml <constant name="struts.multipart....