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();
      }
     }
    }

  • 相关阅读:
    ueditor单独调用图片上传
    百度Ueditor多图片上传控件
    linux基础之vim编辑器
    linux基础之进阶命令二
    linux基础之基础命令一
    Python基础之PyCharm快捷键大全
    IT菜鸟之VTP应用项目
    IT菜鸟之总结(Du teacher)
    IT菜鸟之DHCP
    IT菜鸟之路由器基础配置(静态、动态、默认路由)
  • 原文地址:https://www.cnblogs.com/boonya/p/2167732.html
Copyright © 2011-2022 走看看