本案列是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. 基础拾遗---委托,匿名函数,lambda

    前言: C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针.委托是存有对某个方法的引用的一种引用类型变量.引用可在运行时被改变.委托(Delegate)特别用于实现事件和回调方法. ...

  2. Android学习笔记StateListDrawable文件

    SateListDrawable,可包含一个 Drawable 数组,让目标组件在不同状态显示不同 Drawable.对应的 xml 文件的根节点 示例 edittext_focused.xml &l ...

  3. mysql面试题总结

    Mysql中的myisam与innodb的区别? InnoDB存储引擎的四大特性? 什么是事务? 数据库事务的四大特性? 不考虑事务的隔离性,会发生几种问题? MySQL数据库提供的四种隔离级别? 有 ...

  4. IDEA自定义类注释和方法注释(自定义groovyScript方法实现多行参数注释)

    一.类注释 1.打开设置面板:file -> setting -> Editor -> file and code Templates 选择其中的inclues选项卡,并选择File ...

  5. ODBC 常见数据源配置整理

    目录 1. 简介 1.1 ODBC和JDBC 1.2 ODBC配置工具 1.3 ODBC 数据源连接配置 2. MySQL 数据源配置 2.1 配置步骤 2.2 链接参数配置 3. SQLServer ...

  6. java scoket Blocking 阻塞IO socket通信三

    在NIO同步非阻塞的场景中和原来同步阻塞最大的却别就是引入了上面的Buffer对象,现在我们来学校上面的BUffer对象 我们来看看程序的代码: package bhz.nio.test; impor ...

  7. php - 二维数组转一维数组总结

    二维数组转一维数组总结 例如将如下二位数组转以为以为一维数组 $records = [ [ 'id' => 2135, 'first_name' => 'John', 'last_name ...

  8. 【C++和C#的区别杂谈】后自增运算符的结算时机

    C++和C#的前自增++n和后自增n++,都是先自增后取值和先取值后自增的含义,但在复杂一点的赋值语句中,我发现细节上有很大的差异. 发现这个问题主要是一个无聊的晚上,我想搞清楚后自增是什么时候结算, ...

  9. CSS——文本超出隐藏显示省略号

    文本超出隐藏显示省略号 1.单行文本的溢出显示省略号 overflow: hidden; text-overflow:ellipsis; white-space: nowrap; // overflo ...

  10. python将列表按行写入csv

    import csv rows2 = ['abc1/ab1c','N'] for n in range(10): f = open("ok.csv", 'a',newline='' ...