<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'test.jsp' starting page</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">
<style type="text/css">
*{
font-size: 12px;
}
.ondoc{
float: left;
padding-top: 5px;
}
#file_list{
float: left;
width: 300px;
border: 1px solid #88A;
height: 20px;
}
#uploadInput{
float: left;
z-index: -1;
}
#add{
background-color: #C8C8C8;
width: 80px;
height: 20px;
line-height: 20px;
text-decoration: none;
}
a{
text-decoration: none;
}
.input_browser{ 
cursor:pointer; 
width:1px; 
border:none; 
height:32px; 
padding:0px; 
margin:0px;
position:absolute; 
opacity:0;
filter:alpha(opacity=0);
left:-32px !important;left:-5px;left/**/:-3px; 
font-size:20px;
}
</style>
<script type="text/javascript">
function $(id){
return document.getElementById(id);
}
var fileIndex = 0;
var files = new Array();
files[0] = "";
function createFile(){
fileIndex ++;
var oInput = document.createElement("INPUT");
oInput.id = "input"+fileIndex;
oInput.name = "input"+fileIndex;
oInput.type = "file";
oInput.className = "input_browser";
oInput.hideFocus = true;
oInput.size = 1;
$("uploadInput").appendChild(oInput);
alert($("uploadInput").innerHTML);
$("input"+fileIndex).click();
var file_list = $("file_list").innerHTML;
if(file_list != ""){
file_list +=  "<span id=\"content"+fileIndex+"\"><br>";
}else{
file_list +=  "<span id=\"content"+fileIndex+"\">";
}
var vv = $("input"+fileIndex).value;
if(fileIndex > 1){
if(check(vv)){
files[fileIndex] = vv;
file_list += "<img src='images/cx.gif'>" + vv + "<a href=\"javascript:void(0);\" onclick=\"delFile("+fileIndex+")\">删除</a></span>";
$("file_list").innerHTML = file_list;
}else{
$("uploadInput").removeChild(oInput);
fileIndex --;
}
}else{
files[fileIndex] = vv;
file_list += "<img src='images/cx.gif'>" + vv + "<a href=\"javascript:void(0);\" onclick=\"delFile("+fileIndex+")\">删除</a></span>";
$("file_list").innerHTML = file_list;
}
}
function delFile(index){
var content = $("content"+index);
files[index] = "";
$("file_list").removeChild(content);
var oInput = $("input"+index);
$("uploadInput").removeChild(oInput);
}
function check(v){
for(var i=0;i<files.length;i++){
if(v == files[i]){
alert("当前目录下已有相同文件,无须重复上传");
return false;
}
}
return true;
}

</script>
  </head>
  
  <body>
    <form action="upload.jsp" method="post" enctype="multipart/form-data" >
  <div style="width: 100%;">
<div class=ondoc>
电子文本文件存放
</div>
<div>
<div id="file_list">
</div>
<div id="uploadInput"></div>
<a href="javascript:void(0);" onclick="createFile()"><div class=add>文件浏览添加</div></a>
</div>
</div>
<div style="width: 100%;">
<div class=ondoc>
非电子文本文件存放位置
</div>
<div>
<input type="text" style="width: 349px;" name="lawdoc">
</div>
</div>
<input type="submit" value="确定" onclick="javascript:document.forms[0].submit();">
    </form>
  </body>
</html>

解决方案 »

  1.   


    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%@ page import="org.apache.commons.fileupload.*" %>
    <%@ page import="java.io.*" %>
    <%
    try{
    DiskFileUpload dfu = new DiskFileUpload();
    dfu.setSizeMax(1024*10240);
    dfu.setRepositoryPath(request.getRealPath("")+"js\\");
    dfu.setSizeThreshold(4096);
    List files = dfu.parseRequest(request);
    if(files != null && files.size() > 0){
    for(int i = 0 ; i < files.size() ; i ++){
    FileItem ff = (FileItem)files.get(i);
    String fileName = ff.getName();
    System.out.println(i+"=="+fileName);
    //ff.write(new File(request.getRealPath("")+"upl\\"+System.currentTimeMillis()+"\\"+fileName.substring(fileName.lastIndexOf("."))));
    }
    }
    }catch(Exception e){
    e.printStackTrace();

    }

     %>
      

  2.   

    问题1:我点确定,得点好几下才能提交,不知为啥?
    问题2:fileItem为什么得到的都是空啊?
      

  3.   

    怎么没看到input type="file"?
      

  4.   

    没看你的js  
    介绍下这一堆js的作用啊
      

  5.   

    ServletFileUpload.isMultipartContent(request);
    factory.setSizeThreshold(4096);// 设置缓冲区大小,这里是4kb
    factory.setRepository(new File(tempPath));//设置,tempPath:路径
    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setSizeMax(MAX_SIZE);//MAX_SIZE在定义的时候设置的
    List<FileItem> /* FileItem */ items = upload.parseRequest(request);
    Iterator<FileItem> iter = items.iterator();
    while (iter.hasNext()) {
       FileItem item = (FileItem) iter.next();
    //....
    }
      

  6.   

    对不起,我从来不用第三方的上传组件。我只用我自己写的。SORRY!
      

  7.   

    <input type="text"
    要改成type="file"啊要点几下可能是你的js写得有问题吧