在JSP中上传文件

  要进行文件上传,可以开发一个Servlet或者JavaBean处理上传的任务。总的思路是由Servlet或者JavaBean获得客户端请求的输入流,然后从这个输入流中读取指定的文件,然后把文件保存到指定的位置。原理虽然简单,但是要设计一个功能完备的执行上传文件的类,却是一个比较复杂的任务。
   不过可以找现在有的一些工具。比如“SmartUpload”,就是一个比较成熟的上传工具,
下面编写一个提交上传文件的网页
   <html>
   <head>
   <title>Test Document</title>
   <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
   </head>
   <body>
     <hr>
     <center>
      upload file <br>
     <form action="upload.jsp" method="post" enctype="multipart/form-data">
     <table><tr><td>name:
     <input type="file" name="file" size="20"></td></tr>
     <tr><td><input type="submit" value="上传"></td></tr>
     </table>
     </form>
     </center>
   </body>
   </html>
 

虽然是HTML文件,但是还是要注意在From属性中,方法必须使用post并且必须增加enctype="multipart/form-data"属性,否则不能上传文件。
下面看看upload.jsp文件
  <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*" errorPage=""%>
  <%@ page import="com.jspsmart.upload.*"%>
  <jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload"/>
  <html>
   <head>
     <title>上传附件</title>
     <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
   </head> 
   <body>
      <center> 正在上传文件.............
       <%
        //上传附件
         try{
            mySmartUpload.initialize(pageContext);
            mySmartUpload.service(request,response);
            mySmartUpload.upload();
            String fn = mySmartUpload.getFiles().getFile(0).getFileName();
            mySmartUpload.save("upload/");//文件保存的目录为upload
            out.println("已经成功上传了文件,请查看<a href=upload/"+fn+">这里</a>,看文件是否上传成功");
            }
      catch(Exception e){
           e.printStackTrace();
          }
       %>
     <a href=FileUpload.html>重新上传</a>
   </body>
  </html>


SmartUpload已经封装了上传文件需要的功能,使用起来非常简单。

你可能感兴趣的:(html,sql,jsp,servlet)