如何获取上传的文件?也就是<input type="file"/>中的文件?
用request.getInputStream吗?
如果我的html表单中还有其它数据或者存在多个文件,那么我应该怎么获得这些数据以及如何获得多个文件

解决方案 »

  1.   

    JSP利用组件实现文件上传
    一、首先下载jspsmartupload组件
    http://www.jspsmart.com 或
    http://www.hoodle.net/other/zujian/jspSmartUpload.zip
    二、将目录jspsmartupload/wib_inf/classes中的内容拷贝到网站所在的实际目录中的web_inf中lib下
    三、上传界面的代码如下:(文件名:insert.htm)
    <FORM METHOD="POST" ACTION=" uploadfile.jsp" ENCTYPE="multipart/form-data">
    <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
    <INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
    <INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
    <INPUT TYPE="FILE" NAME="FILE4" SIZE="50"><BR>
    主题:<input type="text" name="text1" ><br>
    <INPUT type=submit value=写 完 name=ok>
    </form>五、uploadfile.jsp的代码如下:
    <%@ page language="java" import="com.jspsmart.upload.*"%>
    <jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
    <HTML>
    <BODY BGCOLOR="white">
    <H1>hoodle-jsp</H1>
    <HR>
    <%
    int count=0;
    mySmartUpload.initialize(pageContext);
    '文件上传
    mySmartUpload.upload();
    '获得文本的内容
    String content = mySmartUpload.getRequest().getParameter("text1");
    '显示文本的内容
    out.println(content);
    '上传的情况统计
    for (int i=0;i<mySmartUpload.getFiles().getCount();i++){com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
    if (!myFile.isMissing()) {
    myFile.saveAs("/upload/" + myFile.getFileName());
    out.println("FieldName = " + myFile.getFieldName() + "<BR>");
    out.println("Size = " + myFile.getSize() + "<BR>");
    out.println("FileName = " + myFile.getFileName() + "<BR>");
    out.println("FileExt = " + myFile.getFileExt() + "<BR>");
    out.println("FilePathName = " + myFile.getFilePathName() + "<BR>");
    out.println("ContentType = " + myFile.getContentType() + "<BR>");
    out.println("ContentDisp = " + myFile.getContentDisp() + "<BR>");
    out.println("TypeMIME = " + myFile.getTypeMIME() + "<BR>");
    out.println("SubTypeMIME = " + myFile.getSubTypeMIME() + "<BR>");
    count ++;
    }
    }
    out.println("<BR>" + mySmartUpload.getFiles().getCount() + " files could be uploaded.<BR>");
    out.println(count + " file(s) uploaded.");
    %>
    </BODY>
    </HTML>
      

  2.   

    下面有个连接,可以参考一下:
    http://blog.csdn.net/wl_ldy/archive/2009/11/26/4876745.aspx
      

  3.   

    经过测试myFile.saveAs("/upload/" + myFile.getFileName()); 这句代码会报错。找不到upload文件夹
      

  4.   

    http://www.jspsmart.com/此网页无法访问
      

  5.   

    楼主可以到 Apache Commons 下去看看一个称为 FileUpload 的组件,用于文件上传很方便,几行代码就能搞定的。
      

  6.   

    JSP不方便直接使用文件上传,可以借助其他组件实现文件上传功能。1. 使用FileUpload组件,提交后可以使用FileUpload提供的API获得提交过来的文件内容,具体用法网上有很多说明。2. 使用JSPSmartUpload组件也可以实现文件上传,具体用法也可网上搜索。3. 当然如果你用过Struts的话可以直接使用Struts提供的FormFile类来接受文件内容,前提是项目的WEB层中使用了Struts框架。具体怎么做网上应该也能搜的到,希望能开启你的思路。