本案列是java  maven工程小项目,提供个大家学习!

1.在pom.xml文件中导入依赖:

<!--文件上传依赖-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency> <!--String社区 jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>

1. 编写图片上传工具,ApachFileUploadUtil :import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID; /**
* 文件上传,批量上传文件工具
* @author: boat
*/
public class ApachFileUploadUtil {
private static DiskFileItemFactory fileItemFactory = new DiskFileItemFactory(); /**
* 上传功能
* @param request
* @param filePath
* @return 路径集合
*/
public static List<String> fileUpload(HttpServletRequest request,String filePath){
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
List<String> list = new ArrayList<>();
try {
List<FileItem> fileItems = servletFileUpload.parseRequest(request);
for (FileItem item : fileItems){
String fieldName = item.getFieldName();
if(!item.isFormField()){ //判断是否是文件项
//获取原文件名
String name = item.getName(); InputStream in = item.getInputStream(); String path = getPath(filePath, name);
OutputStream out = new FileOutputStream(path);
byte[] b = new byte[1024];
int len = 0;
while((len = in.read(b)) != -1){
out.write(b,0,len);
}
out.close();
in.close(); //添加文件路径
list.add(path);
}
item.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
} /**
* 随机字符串
* @param fileName
* @return String
*/
public static String radomFileName(String fileName){
int index = fileName.lastIndexOf(".");
String suffix = fileName.substring(index);
String newfileName = UUID.randomUUID().toString().replace("-", "");
return (newfileName + suffix);
} /**
* 随机文件路径
* @return String
*/
public static String radomFilePath(){
String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
return format.replace("-","");
} /**
* 返回指定的文件路径
* @param path
* @param fileName
* @return String
*/
public static String getPath(String path,String fileName){ String newPath = path + "\\"+ radomFilePath();
File photoFileDir = new File(newPath); if(!photoFileDir.exists()){ // 如果路径不存在,就创建路径
photoFileDir.mkdirs();
} return (newPath + "\\" + radomFileName(fileName));
} }
2.在servlet类中service调用图片上传工具类:
import com.boat.utils.ApachFileUploadUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; @WebServlet("/file")
public class FileUploadServlet extends HttpServlet { @Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=utf-8");
ServletContext servletContext = req.getServletContext();
String realPath = servletContext.getRealPath("/img"); List<String> strings = ApachFileUploadUtil.fileUpload(req, realPath);
String json = new ObjectMapper().writeValueAsString(strings); resp.getWriter().println("{status:1,data:"+json+",message:'上传成功'}");
} @Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
} }
点击下载:https://pan.baidu.com/s/1rzZoJlbMmUskOW6PsaGCzg   密码:lc2e

加QQ: 425759592  欢迎交流。

commons-fileload图片文件上传工具 , servlet文件图片上传案列的更多相关文章

  1. 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等

    以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...

  2. FTP服务器上传工具,FTP服务器上传工具下载!

    IIS7服务器管理工具能够作为FTP的客户端,进行FTP的命令操作,可在客户端,下载,安装FTP软件! 同时,它也可以作为VNC的客户端,进行VNC的命令操作!它能够批量连接Windows和Linux ...

  3. Servlet 文件上传

    Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码 ...

  4. Servlet文件上传下载

    今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...

  5. maven工程 java 实现文件上传 SSM ajax异步请求上传

    java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: <!- ...

  6. PHP 图片上传工具类(支持多文件上传)

    ====================ImageUploadTool======================== <?php class ImageUploadTool { private ...

  7. Servlet实现图片文件上传

    1.首先要导入以下两个jar包: commons-fileupload-1.2.1.jarcommons-io-1.4.jar 2.jsp文件:index.jsp <%@ page langua ...

  8. 使用Commons FileUpload 1.3.3和Servlet 3.0上传文件

    简介 Commons FileUpload可以轻松地为web应用程序添加强大,高性能的文件上传功能.Servlet3.0之前的web应用程序需要使用Commons FileUpload组件上传文件,但 ...

  9. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

随机推荐

  1. selenium(3)-针对鼠标的操作

    背景 用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等. 而selenium给我们提供了一个类来处理这类事件-----------Acti ...

  2. 一分钟开始持续集成之旅系列之:Java + GWT

    作者:CODING - 朱增辉 前言 Google Web Toolkit(GWT)是一个开源.免费的 Web 开发框架,通过该框架,您可以使用 Java 构建复杂.高性能的 JavaScript 应 ...

  3. 人脸识别Demo解析C#

    概述 不管你注意到没有,人脸识别已经走进了生活的角角落落,钉钉已经支持人脸打卡,火车站实名认证已经增加了人脸自助验证通道,更别提各个城市建设的『智能城市』和智慧大脑了.在人脸识别业界,通常由人脸识别提 ...

  4. Elasticsearch的query phase和fetch phase

    对于一次query查询到数据返回到客户端,经历了两个过程  query phase和fetch phase的过程 query phase 查询阶段     fetch phase 获取阶段. 1 qu ...

  5. 8.eclipse 安装 lombook插件

    参考博客:https://www.liangzl.com/get-article-detail-129979.html

  6. Python3-queue模块-同步队列

    Python3中的queue模块实现多生产者,多消费者队列,特别适用于多个线程间的信息的安全交换,主要有三个类 queue.Queue(maxsize=0) 构造一个FIFO(先进先出)的队列 que ...

  7. 入门大数据---SparkSQL联结操作

    一. 数据准备 本文主要介绍 Spark SQL 的多表连接,需要预先准备测试数据.分别创建员工和部门的 Datafame,并注册为临时视图,代码如下: val spark = SparkSessio ...

  8. yum本地源创建

    1 安装yum-utils包,yum-utils可以将需要的包下载在本地,安装后可以使用yumdownloader   yum -y install yum-utils* 2 建立目录/yum/yum ...

  9. LQR要点

    新的“A”变成着了这样:Ac = A - KB 基于对象:状态空间形式的系统 能量函数J:也称之为目标函数 Q:半正定矩阵,对角阵(允许对角元素出现0) R:正定矩阵,QR其实就是权重 下面这段话可能 ...

  10. onunload对应的js代码为什么不能执行?和onbeforeunload的区别?

    为什么onunload对应的js代码不能执行? 为什么onbeforeunload才可以在离开页面时执行相应的js代码? 1.onunload和onbeforeunload都是在离开页面或者刷新页面的 ...