zoukankan      html  css  js  c++  java
  • web应用之文件上传

    一、Jakart:Jakart文件上传:(推荐使用)

    import java.io.File;
    import java.io.IOException;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;

    @SuppressWarnings("serial")
    public class JakartFileUp extends HttpServlet {

     public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {

      doPost(request, response);
     }

     @SuppressWarnings("unchecked")
     public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
      // 设置工厂
      DiskFileItemFactory factory = new DiskFileItemFactory();
      factory.setSizeThreshold(1024 * 64); // 缓存在内存中的数据量

      ServletFileUpload sup = new ServletFileUpload(factory);
      sup.setFileSizeMax(1024 * 1024 * 50); // 设置单个上传的最大文件
      sup.setSizeMax(1024 * 1024 * 100); // 允许一次上传的文件总大小

      try {
       List<FileItem> files = sup.parseRequest(request);
       if (files == null || files.size() == 0) {
        System.out.println("没有上传文件!");
       } else {
        for (FileItem myFile : files) {
                         if(myFile.isFormField()){//普通表单字段
                         String name = myFile.getFieldName();
                         String value = myFile.getString();
                         System.out.println(name+" : "+value);
                         }else{ //文件字段
                          String name = myFile.getName();
                         
                          int start = name.lastIndexOf("\\");
                          //文件名
                          name = name.substring(start+1);
                          System.out.println("文件名:"+name);
                          //路径
                          String base = this.getServletContext().getRealPath("/");
                          System.out.println("base:"+base);
                          String dest = base+"/imgs/jakart/"+name;
                          File destFile = new File(dest);
                         
                          try {
               myFile.write(destFile);
          
                             } catch (Exception e) {
        e.printStackTrace();
        }
                         

                         }    
        }
       }
      } catch (FileUploadException e) {
       e.printStackTrace();
      }
     }

    }

    二、SmartUpload:Smart上传方式

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.lxh.smart.File;
    import org.lxh.smart.SmartUpload;
    import org.lxh.smart.SmartUploadException;


    public class UpFile extends HttpServlet {

     public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
      doPost(request,response);
     }

     
     public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
            SmartUpload  smart = new SmartUpload();
            smart.setMaxFileSize(1024*1024);
            //初始化上传对象
            smart.initialize(this.getServletConfig(),request,response);
           
            try {
             //上传文件
       smart.upload();
       
       int fileCount = smart.getFiles().getCount();
       //循环取得所有的文件对象
       for(int i = 0; i < fileCount;i++){
        File file = smart.getFiles().getFile(i);
        if(!file.isMissing()){
         //取得上传文件名
         String fileName = file.getFileName();
         //取得后缀名
         String ext = file.getFileExt();
         //取得文件大小
         long size = file.getSize();
         
         System.out.println("上传文件名:"+fileName);
         //取得工程要目录
         String base = this.getServletContext().getRealPath("/");
         //保存目录
         String dest = base+"/imgs/smart/"+fileName;
         //保存文件
         file.saveAs(dest);
         System.out.println("文件上传成功!");
         
        }
       }
       
       String name = smart.getRequest().getParameter("author");
       System.out.println("上传者:"+name);
      } catch (SmartUploadException e) {
       e.printStackTrace();
      }
     }
    }

  • 相关阅读:
    Maven---右键Servlet模板
    付宇泽 20191128-1 总结
    付宇泽20191121-1 每周例行报告
    付宇泽20191114-1 每周例行报告
    安装tensorflow时出现找不到模块问题
    罗杨美慧 20191128-1 总结
    罗杨美慧 20191121-1 每周例行报告
    罗杨美慧 20191114-1 每周例行报告
    罗杨美慧 20191107-1 每周例行报告
    罗杨美慧 20191031-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/boonya/p/2167732.html
Copyright © 2011-2022 走看看