我的框架是jsp+bean,没有用struts之类。现在我要写一个上传文件的功能,请大家给我一些帮助,我在这方面没有一点经验,所以越详细越好。谢谢大家

解决方案 »

  1.   

    用上传组件jspsmart做。在上传成功后你只需要把上传后的该文件的路径保存到数据库里就Ok了!
      

  2.   

    jspsmart上传页面代码:
    <%@ page contentType="text/html; charset=gb2312" language="java" session="true" 
    import="java.util.*,com.jspsmart.upload.*" errorPage="../error.jsp" %>
    <%@ page import="com.vo.UploadBean" %>
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %><% 
    UploadBean up = new UploadBean();
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
    <title></title>
    <link rel="stylesheet" type="text/css" href="../css/main.css"/>
    <link rel="stylesheet" type="text/css" href="../style/blue/css/default.css"/>
    <script language="javascript" src="../js/main.js"></script>
    </head>
    <script type="text/javascript">
    function update()
    {
    document.form1.action="../updateuserinfo.do";
    document.form1.submit();
    }
    </script>
    <body>
    <%
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 上传初始化
    su.initialize(pageContext);

    // 上传文件
    su.upload();
    // 将上传文件全部保存到指定目录
    int count = su.save("/upload/");
    out.println(count+"个文件上传成功!<br>");
    // 利用Request对象获取参数之值
    //out.println("TEST="+su.getRequest().getParameter("TEST")+"<BR><BR>"); // 逐一提取上传文件信息,同时可保存文件。

    com.jspsmart.upload.File file = su.getFiles().getFile(0);
    // 若文件不存在则继续
    //if (file.isMissing()) continue;
    // 显示当前文件信息
    out.println("<TABLE BORDER=1>");
    out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
    + file.getFieldName() + "</TD></TR>");
    out.println("<TR><TD>文件长度(Size)</TD><TD>" + 
    file.getSize() + "</TD></TR>");
    out.println("<TR><TD>文件名(FileName)</TD><TD>" 
    + file.getFileName() + "</TD></TR>");
    out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 
    + file.getFileExt() + "</TD></TR>");
    out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
    + file.getFilePathName() + "</TD></TR>");
    out.println("</TABLE><BR>");
    %>
    <form name="form1" method="post" >
    <table align="center">
    <input type ="hidden" name="type" value="<%=type%>">
    <input type ="hidden" name="Filename" value="<%=file.getFileName()%>">
    <input type ="hidden" name="Fileext" value="<%=file.getFileExt()%>">
    <input type ="hidden" name="Filepathname" value="<%=file.getFilePathName()%>">
    <tr>
    <td>[<a href="javascript:update();">确定</a>]</td>
    <td>[<a href="javascript:window.close();">取消</a>]</td>
    </tr>
    </table>
    </form></body>
    </html>
      

  3.   

    你只需要把jspsmart到classes文件放在WEB-INF/classes里就Ok了!