1、添加附件
   我从网上获得一段代码,可以实现类似163信箱中上传附件的功能。
   但是发觉有个问题,点击“添加附件”后,前面上传的附件就消失了。  
   代码如下:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
var sequence = 0;
function addAttachment() {
  var index = sequence++;
  var area = document.getElementById("attach_area");
  area.innerHTML += 
  "<div id=\"attach_" + index + "\">" +
  "<input id=\"attach_file\" type=\"file\" />" +   "<input type=\"button\" value=\"删除\" onclick=\"removeAttachment(" + index + ")\">" +
  "</div>";
}function removeAttachment(index) {
  var attachment = document.getElementById("attach_" + index);
  if (attachment == null) {
    return;
  }
  attachment.innerHTML = "";
  attachment.outerHTML = "";
}//-->
</script>
</head>
<body>
<form action="">
<div id="attach_area">
</div>
<input type="button" value="添加附件" onclick="addAttachment()"/>
</form>
</body>
</html>
2、提交到后台,我用SmartUpload实现附件上传的操作。为什么getFiles().getCount()出来的结果是0啊,应该是上传几个附件返回值就应该为几啊。很着急,请求大家的帮助。谢谢。

解决方案 »

  1.   

    <%@ page contentType="text/html;charset=GB2312" 
             import="com.jspsmart.upload.*" 
    %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.util.*" %>
    <%@ page session="true" %><jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
    <jsp:useBean id="db" scope="page" class="oa.gzl.opendb" />
    <html>
    <head>
    <title>文件上传</title>
    </head><body>
    <center>文件上传</center>
    <hr>
    <% 
    String mesg="";
    String time1="";
    String time,rq;
    int year,month,day,hour,minute,second;
    GregorianCalendar calendar;
    calendar=new GregorianCalendar();
    year=calendar.get(Calendar.YEAR);
    month=calendar.get(Calendar.MONTH)+1;
    day=calendar.get(Calendar.DAY_OF_MONTH);
    hour=calendar.get(Calendar.HOUR_OF_DAY);
    minute=calendar.get(Calendar.MINUTE);
    second=calendar.get(Calendar.SECOND);
        rq=year+"-"+month+"-"+day+"-";
        time=hour+":"+minute+":"+second;
       mySmartUpload.initialize(pageContext);   
       mySmartUpload.upload();      
       int count=0;
       String a[]=new String[3];
       String b[]=new String[3];
       for(int i=0;i<mySmartUpload.getFiles().getCount();i++)
       {
         File myFile=mySmartUpload.getFiles().getFile(i);    
          if(!myFile.isMissing())
          {

    time=year+"-"+month+"-"+day+i;

    String filename=time1+"."+myFile.getFileExt();  
    myFile.saveAs("/upload/"+filename,mySmartUpload.SAVE_VIRTUAL);       
    String path="\\upload\\";
    String fileloca=path+filename;
    a[i]=fileloca;
    b[i]=myFile.getFileExt();
    count++;  
         }else{
     a[i]="无";
     b[i]="无";  
     }
    }      String title=mySmartUpload.getRequest().getParameter("title");
    String name=mySmartUpload.getRequest().getParameter("name");
    String bm=mySmartUpload.getRequest().getParameter("bm");
    String content=mySmartUpload.getRequest().getParameter("content");
    String type=mySmartUpload.getRequest().getParameter("type");
    String author="";
    String typename="";if(title.length()==0)
    {
    String errmsg="标题不能为空";
    out.print("<font size=2>错误信息<hr></font><font size=2>"+errmsg+"</font><hr>");
    }
    else if(name.length()==0)
    {
    String errmsg="作者错误";
    out.print("<font size=2>错误信息<hr><font size=2>"+errmsg+"</font><hr>");
    }
    else if(bm.length()==0)
    {
    String errmsg="类别错误";
    out.print("<font size=2>错误信息<hr><font size=2>"+errmsg+"</font><hr>");
    }else{ String errmsg="添加成功";

       author=name+"/"+bm;
    String sql="insert into news(title,author,content,rq,type,path1,path2,path3,lx1,lx2,lx3) values('"+title+"','"+author+"','"+content+"','"+rq+"','"+type+"','"+a[0]+"','"+a[1]+"','"+a[2]+"','"+b[0]+"','"+b[1]+"','"+b[2]+"')";
    db.execQuery(sql);
    response.sendRedirect("add_news.jsp");
    }
    %></body>
    </html>供你参考!
      

  2.   

    upload.htm
    <html>
    <head>
    <title>File Upload</title>
    <meta http-equiv="Content-Type" content="text/html; charset="gb2315">
    </head>
    <body>
    <H2>上传文件</H2><form enctype="multipart/form-data" method="post" action="upload.jsp"> 
    <p>上传文件1: <input type="file"name="File1" size="20" maxlength="20"> <br>
    文件描述 :  <input type="text" name="File1" size="30" maxlength="50"> </p>
    <p>上传文件2: <input type="file" name="File2" size="20" maxlength="20"> <br>
    文件描述 : <input type="text" name="File2" size="30" maxlength="50"> </p><input type="submit"value="上传"></p>
    </form></body>
    </html> 
    upload.jsp
    <%@page pageEncoding="gb2312"%>
    <%@page contentType="text/html; charset=gb2312"%>
    <%request.setCharacterEncoding("gb2312");%><%@ page import="java.io.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="com.oreilly.servlet.MultipartRequest" %><% 
    // 将上传文件存放在 C:\Upload下   
        String saveDirectory = "F://Upload"; 
        File uploadPath=new File(saveDirectory);
        if(!uploadPath.exists()) uploadPath.mkdir();
       
        // 上传文件的大小限制在5 MB 
        int maxPostSize = 5 * 1024 * 1024 ;     // 存放文件描述
        String fileDescription[] = {null,null};     // 上传文件名 
        String fileName = null;
        // 上传文件数 
        int count = 0 ;
            // 上传文件
        MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"GBK" ); 
    %>
    <html>
    <head>
    <title>File Upload</title>
    </head>
    <body>
    <% 

       // 取得文件描述
    if ( multi.getParameter("File1") != null ) 

    fileDescription[0] = multi.getParameter("File1"); 
    }
    else
       { 
    fileDescription[0] = ""; 


    if ( multi.getParameter("File2") != null ) 

    fileDescription[1] = multi.getParameter("File2"); 

    else
       { 
    fileDescription[1] = ""; 


    // 取得所有上传文件名称
    Enumeration filesname = multi.getFileNames(); 
    while (filesname.hasMoreElements()) 

    String name = (String) filesname.nextElement(); 
    fileName = multi.getFilesystemName(name);
       File f = multi.getFile(name); 
    String ContentType = multi.getContentType(name);
      
    if (fileName != null) 

    count ++;%>
    <font color="red">您上传的第<%= count %>个文件:</font><br>
    文件名:<%= fileName %><br>
    文件类型:<%= ContentType %><br>
    文件描述:<%= fileDescription[count-1] %><br><br><%
     } // end if 
    } // end while
    %> 
    您共上传<font color="red"><%= count %></font>个文件
    </body>
    </html>