SmartUpload组件控制文件上传

 

HTML:

  <form action="upload/doUpload.jsp" method="post" enctype="multipart/form-data">
   <input type="file" name="myfile"/><br />
   <input type="file" name="myfile2" /><br />
   描述:<input type="text" name="desc" /><br />
   <input type="submit"/>
   </form>

form表单属性必须定义method="post" enctype="multipart/form-data"

 

JSP:

<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="com.jspsmart.upload.File"%>

 <%
     SmartUpload su = new SmartUpload();
     //初始化
     su.initialize(pageContext); //内置对象pageContext作为参数
     String allowed="jpg,bmp,txt";
     su.setAllowedFilesList(allowed); //设置允许上传的扩展名
     String unallowed="bat";
     su.setDeniedFilesList(unallowed); //不允许上传

     su.setMaxFileSize(1024*1024*2);  //最大上传2M
     try{
      su.upload(); //上传到内存

      for (int i = 0; i < su.getFiles().getCount(); i++) { //多个上传
       File file = su.getFiles().getFile(i); //取得单个文件上传信息
       if(file.isMissing()) //判断是否为空上传项
        continue;

      String desc = su.getRequest().getParameter("desc"); //在upload()方法之后才可使用,获取表单信息
      out.print("上传描述:"+desc);
      File file = su.getFiles().getFile(i); //取得单个文件上传信息
      String filePath = "file/"; 
      filePath += file.getFileName(); //设置文件在服务器保存位置
      file.saveAs(filePath,SmartUpload.SAVE_VIRTUAL); //文件另存到tomcat部署的项目文件夹中,不是当前项目物理位置
      //如果保存绝对路径,
      //file.saveAs(filePath,SmartUpload.SAVE_PHYSICAL);
      out.print(filePath);

      }
     }catch(Exception e){
      out.write(e.toString());
      e.printStackTrace();
     }
     %>

Servlet:实现上传

<form action="servlet/DoUpload" method="post" enctype="multipart/form-data">

--------------------------

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  SmartUpload su = new SmartUpload();
  su.initialize(this.getServletConfig(), request, response); //初始化
  String allowed = "jpg,bmp,ico,png";
  su.setAllowedFilesList(allowed);
  String unallowed = "bat,jsp,aspx,asp,txt";
  try {
   su.setDeniedFilesList(unallowed);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  su.setMaxFileSize(1024*1024*2);
  try {
   su.upload();
   for(int i =0; i<su.getFiles().getCount(); i++){
    File file = su.getFiles().getFile(i);
    if(file.isMissing())
     continue;
    String desc = su.getRequest().getParameter("desc");
    out.print(desc);
    String fileName = "d:/file/"; //路径必须存在,否则异常
    fileName += file.getFileName();
    out.print(fileName);
    file.saveAs(fileName,SmartUpload.SAVE_PHYSICAL);
   }
  } catch (SmartUploadException e) {
   out.print(e.toString());
   e.printStackTrace();
  }
  out.flush();
  out.close();
 }

你可能感兴趣的:(SmartUpload)