多文件上传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;
}










}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值