1.要实现common-fileupload实现文件上传功能,要在项目下面导入common-fileupload和common-io两个jar包。

2.upload.jsp

代码如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<script type="text/javascript">function uploadmethod(){var formData=new FormData();formData.append('file',$('#file')[0].files[0]);$.ajax({url: 'uploadServlet.do',type: 'POST',cache: false,data: formData,dataType:"json",processData: false,contentType: false}).done(function(res) {console.log(res);}).fail(function(res) {});}
</script>
<body>
<form id="uploadForm" enctype="multipart/form-data"><input id="file" type="file" name="file"/><img alt="" src=""><button onclick="uploadmethod()" id="upload" type="button">upload</button>
</form>
</body>
</html>

3.UploadServlet.java

代码如下:

package com.dfrz.servlet;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
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.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;public class UploadServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();// 使用common-filepload进行处理上传内容FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload fileUpload = new ServletFileUpload(factory);// factory工厂 , FileItem是单个文件System.out.println(111);try {//parseRequest(request)需要导入带有common的包,不然会报错List<FileItem> files = fileUpload.parseRequest(request);for (FileItem fileItem : files) {// 文件名System.out.println(fileItem.getName());System.out.println(fileItem.getSize());System.out.println(fileItem.getContentType());// 进行文件写到服务器磁盘// 获取服务器路径String parentDir = this.getServletContext().getRealPath("/upload");// 如果服务器没有upload路径,要创建文件夹File file = new File(parentDir, fileItem.getName());if (!file.getParentFile().exists()) {file.getParentFile().mkdir();}// 进行文件写到服务器磁盘 IO读写InputStream is = fileItem.getInputStream();OutputStream os = new FileOutputStream(file);byte[] buf = new byte[1024];int len = -1;while ((len = is.read(buf)) != -1) {os.write(buf, 0, len);}// 关闭流os.close();is.close();out.println("{\"status\":\"1\",\"fpath\":\"" + fileItem.getName() + "\"}");}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

4.其中,文件保存在自己设置的根目录下。实在找不到的话,可以在String parentDir = this.getServletContext().getRealPath("/upload");处设置一个断点,然后查看文件所保存在哪里。

common-fileupload实现文件上传功能相关推荐

  1. 用fileupload处理文件上传

    用fileupload处理文件上传 作者:◇ 刘冬 发文时间:2003.07.09 15:52:43 Commons是Apache开放源代码组织中的一个Java子项目,该项目主要涉及一些开发中常用的模 ...

  2. Apache Commons fileUpload实现文件上传

    Apache的commons-fileupload.jar可方便的实现文件的上传功能,本文通过实例来介绍如何使用commons-fileupload.jar. @author:ZJ 07-2-22 B ...

  3. 后端:Layui实现文件上传功能

    今天给大家分享采用AspNet MVC+前端框架LayUi实现文件上传功能,感兴趣的朋友可以学习一下. 文件上传实体(UploadFile.cs) public class UploadFile{pu ...

  4. jquery.form.js java_使用jQuery.form.js/springmvc框架实现文件上传功能

    使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jque ...

  5. Node.js新手教程——怎样实现文件上传功能

    作者:zhanhailiang 日期:2014-11-16 本文将介绍怎样使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/node ...

  6. java批量上传文件_Spring boot 实现单个或批量文件上传功能

    一:添加依赖: org.springframework.boot spring-boot-starter-thymeleaf javax.servlet jstl org.apache.tomcat. ...

  7. vue文件上传功能bootstrap框架

    vue文件上传功能bootstrap框架 封装公共组件components/fileupload/FileUpload.vue 内容如下: 公共组件 ```html <template>& ...

  8. java前后端分离的实现方式_采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...

    MyUploader-Backend 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 简介 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能. 前端采用 vue.js + ...

  9. ie6多文件上传_一个好的“文件上传”功能必须要注意的这些点你都知道吗?

    检查上传文件扩展名白名单,不属于白名单内,不允许上传:[前端和后端都要做好校验] 上传文件的目录必须是http请求无法直接访问到的.如果需要访问的,必须上传到其他(和web服务器不同的)域名下,并设置 ...

最新文章

  1. 阿里全资收购一家核心技术公司,中科院大牛带队加盟
  2. [置顶] 自己动手实现OpenGL之glViewPort(一)
  3. [COGS58] 延绵的山峰
  4. 爬虫从入门到放弃 - 纯新手学习-爬虫基本原理
  5. android官方wifidemo,Android应用开发:连接指定Wifi的Demo分享
  6. C# 大文件分块下载
  7. 【Flink】Flink kafka报错 Auto-commit of offsets failed for group Offset commit failed with a retriable
  8. python tkinter中的锚点(anchor)问题
  9. 做网站用UTF-8编码还是GB2312编码?
  10. 计算机图形学中点圆生成代码,计算机图形中点圆算法
  11. 视频教程-CCNA魔鬼训练营-思科认证
  12. mysql无级分销_无限级分销系统数据库表设计
  13. 苦难是屈辱,还是财富?
  14. 人大金仓驱动包kingbasejdbc8.6.0.jar V8驱动jar包
  15. 清理 Anaconda 的 pkgs
  16. 微信官方:“微信号能修改了!”你有多想修改微信号?
  17. 关于F# 6的那些新功能?你了解吗?
  18. 加菲猫语录精选74 中英俄三语版
  19. MacBook Pro 触控栏不能正常使用怎么解决
  20. mysql丢失数据,mysql数据丢失问题讨论(转)

热门文章

  1. Opencv 发布程序 无法加载DLL 找不到指定的模块 0x8007007E
  2. 进程等待函数(waitpid)
  3. wait 和 waitpid 详解及代码示例
  4. Oracle数据迁移+灾备
  5. 德玛西亚之WorkFlow(六)用户与用户组
  6. 浅析选择广告联盟的四大标准
  7. vue实现角色权限控制
  8. 基于SuperMap的iMobile 3D开发总结(一)
  9. Python-OpenCV 从文件夹中批量读取图片
  10. cpu要和gpu搭配吗_CPU与GPU合理搭配 整机性能当然不俗