`
xi5566
  • 浏览: 151775 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

多文件上传struts版

阅读更多
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中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    一个Struts1多文件上传实例(附Form中传List示例)

    本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...

    struts2实现文件上传下载

    对于大量文件上传,可以考虑使用多线程处理,提高上传效率。还可以添加进度条显示、断点续传等功能,提升用户体验。 以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目...

    struts2实现多文件上传下载

    文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...

    struts2实现多文件上传功能

    Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`&lt;constant&gt;`标签来设置`struts....

    struts 文件上传 Struts实现文件上传

    Struts 是一个基于MVC(Model-View-Controller)...总结,Struts 实现文件上传涉及到配置、表单设计、Action处理和安全控制等多个环节。理解并熟练掌握这些知识点,能帮助开发者在实际项目中高效地处理文件上传需求。

    struts2多文件的上传

    这可以通过添加`&lt;constant&gt;`标签来设置`struts.multipart.parser`为jakarta,这是Struts2推荐的多部分解析器,以支持大文件上传。同时,设置`struts.multipart.maxSize`属性,限制上传文件的大小。 ```xml ...

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts上传多文件

    本篇文章将深入讲解如何在Struts框架中实现多文件上传。 首先,了解Struts2文件上传的基本原理。Struts2使用了Apache的Commons FileUpload库来处理文件上传。在Struts2的Action类中,我们通常会有一个或多个`File`...

    swfuplaod+struts2实现多文件上传

    下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...

    struts多文件上传

    在Struts1.2版本中,实现多文件上传是一项常见的需求,它允许用户在一次提交中上传多个文件,这对于数据交互、资源分享等场景非常实用。在本教程中,我们将深入探讨如何在Struts1.2中实现这一功能。 首先,理解多...

    struts1上传多个文件同时

    在Struts1中处理多文件上传,通常需要以下步骤: 1. **前端准备**:首先,你需要在HTML表单中使用`&lt;input type="file" multiple&gt;`来允许用户选择多个文件。jQuery插件可以增强这个功能,如提供文件预览、进度条显示...

    struts2实现的多个文件上传

    在处理文件上传时,Struts2提供了便捷的API和配置方式,使得开发人员能够轻松实现多文件上传的功能。下面将详细阐述如何使用Struts2来实现多个文件的上传。 首先,理解文件上传的基本原理。在HTTP协议中,文件上传...

    struts1实现文件上传

    综上所述,Struts1中的文件上传功能实现涉及到多个核心组件和技术点的综合运用。开发者需要对Struts1框架有深入的理解,并熟练掌握相关API的使用方法。此外,在实际开发过程中还需要注意安全性问题,比如防止恶意...

    struts2框架下的文件上传

    Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、文件上传等。在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。...

    struts 单文件上传和多文件上传带进度条

    在Struts中,可以实现单文件和多文件的上传,并且为了提升用户体验,我们还可以添加进度条来显示文件上传的状态。本文将详细介绍如何在Struts中实现这两个功能,并带上传进度条。 首先,我们需要了解Struts中处理...

    struts2+jquery+ajax文件异步上传

    在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...

    Extjs4文件上传,后台struts2

    在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...

    JavaEE Struts文件上传

    JavaEE Struts 文件上传是Web开发中的一个常见需求,它允许用户从客户端向服务器传输文件。Struts作为JavaEE框架的一部分,提供了强大的功能来处理这种交互。以下是对这个主题的详细解析。 首先,理解文件上传的...

    struts1实现的文件批量上传

    在本文中,我们将探讨如何使用Struts1框架实现文件的批量上传功能。Struts1是一个经典的Java Web应用程序框架,它提供了...通过这些步骤,我们可以构建一个完整的文件上传系统,让用户能够方便地上传多个文件到服务器。

Global site tag (gtag.js) - Google Analytics