jsp 因为不能添加html:file 所以只有用input 还有1个问题就是input的name 不能1样
<%@ 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;
}
}
分享到:
相关推荐
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...
对于大量文件上传,可以考虑使用多线程处理,提高上传效率。还可以添加进度条显示、断点续传等功能,提升用户体验。 以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目...
文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
Struts 是一个基于MVC(Model-View-Controller)...总结,Struts 实现文件上传涉及到配置、表单设计、Action处理和安全控制等多个环节。理解并熟练掌握这些知识点,能帮助开发者在实际项目中高效地处理文件上传需求。
这可以通过添加`<constant>`标签来设置`struts.multipart.parser`为jakarta,这是Struts2推荐的多部分解析器,以支持大文件上传。同时,设置`struts.multipart.maxSize`属性,限制上传文件的大小。 ```xml ...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
本篇文章将深入讲解如何在Struts框架中实现多文件上传。 首先,了解Struts2文件上传的基本原理。Struts2使用了Apache的Commons FileUpload库来处理文件上传。在Struts2的Action类中,我们通常会有一个或多个`File`...
下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...
在Struts1.2版本中,实现多文件上传是一项常见的需求,它允许用户在一次提交中上传多个文件,这对于数据交互、资源分享等场景非常实用。在本教程中,我们将深入探讨如何在Struts1.2中实现这一功能。 首先,理解多...
在Struts1中处理多文件上传,通常需要以下步骤: 1. **前端准备**:首先,你需要在HTML表单中使用`<input type="file" multiple>`来允许用户选择多个文件。jQuery插件可以增强这个功能,如提供文件预览、进度条显示...
在处理文件上传时,Struts2提供了便捷的API和配置方式,使得开发人员能够轻松实现多文件上传的功能。下面将详细阐述如何使用Struts2来实现多个文件的上传。 首先,理解文件上传的基本原理。在HTTP协议中,文件上传...
综上所述,Struts1中的文件上传功能实现涉及到多个核心组件和技术点的综合运用。开发者需要对Struts1框架有深入的理解,并熟练掌握相关API的使用方法。此外,在实际开发过程中还需要注意安全性问题,比如防止恶意...
Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、文件上传等。在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。...
在Struts中,可以实现单文件和多文件的上传,并且为了提升用户体验,我们还可以添加进度条来显示文件上传的状态。本文将详细介绍如何在Struts中实现这两个功能,并带上传进度条。 首先,我们需要了解Struts中处理...
在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...
在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...
JavaEE Struts 文件上传是Web开发中的一个常见需求,它允许用户从客户端向服务器传输文件。Struts作为JavaEE框架的一部分,提供了强大的功能来处理这种交互。以下是对这个主题的详细解析。 首先,理解文件上传的...
在本文中,我们将探讨如何使用Struts1框架实现文件的批量上传功能。Struts1是一个经典的Java Web应用程序框架,它提供了...通过这些步骤,我们可以构建一个完整的文件上传系统,让用户能够方便地上传多个文件到服务器。