返回顶部
首页 > 资讯 > 精选 >FileUploadUtil工具类怎么在Java项目中使用
  • 383
分享到

FileUploadUtil工具类怎么在Java项目中使用

javafileuploadutilava 2023-05-31 05:05:24 383人浏览 八月长安
摘要

本篇文章为大家展示了FileUploadUtil工具类怎么在Java项目中使用 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下package com.Gootrip.util;impor

本篇文章为大家展示了FileUploadUtil工具类怎么在Java项目中使用 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

具体内容如下

package com.Gootrip.util;import java.io.File;import java.util.*;import org.apache.commons.fileupload.*;import javax.servlet.Http.httpservletRequest;import java.util.regex.Pattern;import java.io.IOException;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import java.util.regex.Matcher;public class FileUploadUtil {  //当上传文件超过限制时设定的临时文件位置,注意是绝对路径  private String tempPath = null;  //文件上传目标目录,注意是绝对路径  private String dstPath = null;  //新文件名称,不设置时默认为原文件名  private String newFileName = null;  //获取的上传请求  private HttpServletRequest fileuploadReq = null;  //设置最多只允许在内存中存储的数据,单位:字节,这个参数不要设置太大  private int sizeThreshold = 4096;  //设置允许用户上传文件大小,单位:字节  //共10M  private long sizeMax = 10485760;  //图片文件序号  private int picSeqNo = 1;  private boolean iSSMallPic = false;  public FileUploadUtil(){  }  public FileUploadUtil(String tempPath, String destinationPath){    this.tempPath = tempPath;    this.dstPath = destinationPath;  }  public FileUploadUtil(String tempPath, String destinationPath, HttpServletRequest fileuploadRequest){    this.tempPath  = tempPath;    this.dstPath = destinationPath;    this.fileuploadReq = fileuploadRequest;  }    public boolean Upload(){    DiskFileItemFactory factory = new DiskFileItemFactory();    try {      //如果没有上传目的目录,则创建它      FileUtil.makeDirectory(dstPath+"/DDD");            //如果没有临时目录,则创建它      FileUtil.makeDirectory(tempPath+"/ddd");            //上传项目只要足够小,就应该保留在内存里。      //较大的项目应该被写在硬盘的临时文件上。      //非常大的上传请求应该避免。      //限制项目在内存中所占的空间,限制最大的上传请求,并且设定临时文件的位置。      //设置最多只允许在内存中存储的数据,单位:字节      factory.setSizeThreshold(sizeThreshold);      // the location for saving data that is larger than getSizeThreshold()      factory.setRepository(new File(tempPath));      ServletFileUpload upload = new ServletFileUpload(factory);      //设置允许用户上传文件大小,单位:字节      upload.setSizeMax(sizeMax);      List fileItems = upload.parseRequest(fileuploadReq);      // assume we know there are two files. The first file is a small      // text file, the second is unknown and is written to a file on      // the server      Iterator iter = fileItems.iterator();      // 正则匹配,过滤路径取文件名      String regExp = ".+\\\\(.+)$";      // 过滤掉的文件类型      String[] errorType = {".exe", ".com", ".cgi", ".asp", ".PHP", ".jsp"};      Pattern p = Pattern.compile(regExp);      while (iter.hasNext()) {        System.out.println("++00++====="+newFileName);        FileItem item = (FileItem) iter.next();        //忽略其他不是文件域的所有表单信息        if (!item.isFORMField()) {          String name = item.getName();          System.out.println("++++====="+name);          long size = item.getSize();          //有多个文件域时,只上传有文件的          if ((name == null || name.equals("")) && size == 0)            continue;          Matcher m = p.matcher(name);          boolean result = m.find();          if (result) {            for (int temp = 0; temp < errorType.length; temp++) {              if (m.group(1).endsWith(errorType[temp])) {                throw new IOException(name + ": Wrong File Type");              }            }            String ext = "."+FileUtil.getTypePart(name);            try {              //保存上传的文件到指定的目录              //在下文中上传文件至数据库时,将对这里改写              //没有指定新文件名时以原文件名来命名              if (newFileName == null || newFileName.trim().equals(""))              {                item.write(new File(dstPath +"/"+ m.group(1)));              }              else              {                String uploadfilename = "";                if (isSmallPic)                {                  uploadfilename = dstPath +"/"+ newFileName+"_"+picSeqNo+"_small"+ext;                }                else                {                  uploadfilename = dstPath +"/"+ newFileName+"_"+picSeqNo+ext;                }                //生成所有未生成的目录                System.out.println("++++====="+uploadfilename);                FileUtil.makeDirectory(uploadfilename);                //item.write(new File(dstPath +"/"+ newFileName));                item.write(new File(uploadfilename));              }              picSeqNo++;              //out.print(name + "&nbsp;&nbsp;" + size + "<br>");            } catch (Exception e) {              //out.println(e);              throw new IOException(e.getMessage());            }          } else {            throw new IOException("fail to upload");          }        }      }    } catch (IOException e) {      System.out.println(e);    } catch (FileUploadException e) {      System.out.println(e);    }    return true;  }    public String GetFileName(String filepath)  {    String returnstr = "*.*";    int length    = filepath.trim().length();    filepath = filepath.replace('\\', '/');    if(length >0)    {      int i = filepath.lastIndexOf("/");      if (i >= 0)      {        filepath = filepath.substring(i + 1);        returnstr = filepath;      }    }    return returnstr;  }    public void setTmpPath(String tmppath)  {    this.tempPath = tmppath;  }    public void setDstPath(String dstpath) {    this.dstPath = dstpath;  }    public void setFileMaxSize(long maxsize) {    this.sizeMax = maxsize;  }    public void setHttpReq(HttpServletRequest httpreq) {    this.fileuploadReq = httpreq;  }    public void setNewFileName(String filename) {    this.newFileName = filename;  }    public void setIsSmalPic(boolean isSmallPic) {    this.isSmallPic = isSmallPic;  }    public void setPicSeqNo(int seqNo) {    this.picSeqNo = seqNo;  }}

--结束END--

本文标题: FileUploadUtil工具类怎么在Java项目中使用

本文链接: https://lsjlt.com/news/223656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • FileUploadUtil工具类怎么在Java项目中使用
    本篇文章为大家展示了FileUploadUtil工具类怎么在Java项目中使用 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下package com.gootrip.util;impor...
    99+
    2023-05-31
    java fileuploadutil ava
  • 如何在Java 项目中使用DateUtils日期工具类
    本篇文章为大家展示了如何在Java 项目中使用DateUtils日期工具类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。介绍在java中队日期类型的处理并不方便,通常都需要借助java.text.S...
    99+
    2023-05-31
    java dateutils dat
  • Calendar类怎么在java项目中使用
    Calendar类怎么在java项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,...
    99+
    2023-05-31
    java calendar ava
  • 怎么在SpringBoot项目中使用redis工具jar包
    本篇文章为大家展示了怎么在SpringBoot项目中使用redis工具jar包,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Redis常用存储操作实现(redis-util模块,该module最...
    99+
    2023-06-08
  • Files与Paths类怎么在java项目中使用
    Files与Paths类怎么在java项目中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java7中文件IO发生了很大的变化,专门引入了很多新的类:import ...
    99+
    2023-05-30
    java path files
  • Android项目开发常用工具类LightTaskUtils怎么使用
    这篇文章主要介绍“Android项目开发常用工具类LightTaskUtils怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android项目开发常用工具类LightTaskUtils怎么使...
    99+
    2023-06-30
  • Java项目常见工具类详解
    目录JWT工具类MD5工具类视频点播工具类公共常量工具类日期操作工具类Http客户端工具类获取IP工具类JWT工具类 这里一共涉及四个方法: 传入用户信息获得token 传入toke...
    99+
    2024-04-02
  • 如何在Java中使用EasyExcel工具类
    今天就跟大家聊聊有关如何在Java中使用EasyExcel工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web M...
    99+
    2023-06-14
  • 如何在Java中使用Collections工具类
    本篇文章为大家展示了如何在Java中使用Collections工具类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数...
    99+
    2023-06-14
  • 如何在Java中使用Semaphore工具类
    这篇文章将为大家详细讲解有关如何在Java中使用Semaphore工具类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、Semaphore的理解Semaphore属于java.util.c...
    99+
    2023-06-15
  • 如何在java中使用 Arrays工具类
    如何在java中使用 Arrays工具类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Arrays工具类属于java中常用的工具类public static&nb...
    99+
    2023-05-31
    java arrays ava
  • Java工具类RelativeDateFormat怎么使用
    要使用Java工具类RelativeDateFormat,您可以按照以下步骤进行操作:1. 下载RelativeDateFormat...
    99+
    2023-10-20
    Java
  • AtomicInteger类如何在Java项目中使用
    这篇文章给大家介绍AtomicInteger类如何在Java项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:public cl...
    99+
    2023-05-31
    java atomicinteger ava
  • File类如何在Java项目中使用
    今天就跟大家聊聊有关 File类如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java File类的详解及简单实例1. File():构造函数,一般...
    99+
    2023-05-31
    java file ava
  • NumberFormat 类如何在Java项目中使用
    本篇文章为大家展示了NumberFormat 类如何在Java项目中使用 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。概要:NumberFormat 表示数字的格式化类, 即:可以按照本地的风格习...
    99+
    2023-05-31
    java numberformat fo
  • IntBuffer类如何在Java项目中使用
    本篇文章给大家分享的是有关IntBuffer类如何在Java项目中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体方法如下:package com.ietree.basi...
    99+
    2023-05-31
    intbuffer java buf
  • Console类如何在java项目中使用
    Console类如何在java项目中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java的Console类的使用方法JDK 6中提供了java.io.Console类...
    99+
    2023-05-31
    java console ava
  • Object类如何在Java项目中使用
    这篇文章将为大家详细讲解有关Object类如何在Java项目中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Object是所有类的父类,任何类都默认继承Object。一、Object类中...
    99+
    2023-05-31
    java object ava
  • HttpURLConnection怎么在Java项目中使用
    这篇文章将为大家详细讲解有关HttpURLConnection怎么在Java项目中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。包括使用HttpURLConnection执行get/po...
    99+
    2023-05-30
    java httpurlconnection
  • 如何在Java中使用Hutool工具类库
    这篇文章将为大家详细讲解有关如何在Java中使用Hutool工具类库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HuTool 中的一些常用工具类我们引入这个工具类很简单,直接在 Mavan...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作