<tr>
<td width="25%" align="right"><font class="mustinput">补丁包名称:</font></td>
<td><input style="text" name="spname" id="spname"  class="input" readonly="readonly" /></td>
</tr>
<tr>
<td width="25%" align="right"><font>上传补丁:</font></td>
<td><input type="file" name="filepost" id="filepost" class="input"/></td>
</tr>
在补丁包名称这个文本框, 怎么通过选择的文件名,然后自动在补丁包名称文本框中自动生成选择的文件名(包括扩展名)也许是个低级小问题,但是困惑了我, 我试了几种方法,有错。

解决方案 »

  1.   

    你用JspSmartUpload组件来实现上传下载功能。通过一个Servlet获取你上传的name值lz再想想看。
      

  2.   


    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
        <title>File upload</title>
    </head>
    <body>
           //必须是multipart的表单数据。
        <form name="myform" action="demo1.jsp" method="post"
           enctype="multipart/form-data">
           Your name: <br>
           <input type="text" name="name" size="15"><br>
           File:<br>
           <input type="file" name="myfile"><br>
           <br>
           <input type="submit" name="submit" value="Commit">
        </form>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
    <%@ page import="org.apache.commons.fileupload.*"%>
    <%@ page import="org.apache.commons.fileupload.servlet.*"%>
    <%@ page import="org.apache.commons.fileupload.disk.*"%>
    <%@ page import="java.util.*"%>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);//检查输入请求是否为multipart表单数据。
        if (isMultipart == true) {
           FileItemFactory factory = new DiskFileItemFactory();//为该请求创建一个DiskFileItemFactory对象,通过它来解析请求。执行解析后,所有的表单项目都保存在一个List中。
           ServletFileUpload upload = new ServletFileUpload(factory);
           List<FileItem> items = upload.parseRequest(request);
           Iterator<FileItem> itr = items.iterator();
           while (itr.hasNext()) {
               FileItem item = (FileItem) itr.next();
               //检查当前项目是普通表单项目还是上传文件。
               if (item.isFormField()) {//如果是普通表单项目,显示表单内容。
           String fieldName = item.getFieldName();
           if (fieldName.equals("name")) //对应demo1.html中type="text" name="name"
               out.print("the field name is" + item.getString());//显示表单内容。
           out.print("<br>");
               } else {//如果是上传文件,显示文件名。
           out.print("the upload file name is" + item.getName());
           out.print("<br>");
               }
           }
        } else {
           out.print("the enctype must be multipart/form-data");
        }
    %>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
        <title>File upload</title>
    </head>
    <body>
    </body>
    </html>