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. windows linux C/C++获取操作系统、CPU、内存信息、硬盘、IP和MAC
  2. SSAS分区数据量过大处理参考 转- Recommended Practices with Partitions and Aggregations
  3. ASP.NET学习6 XML文档的操作
  4. java使用jdbc调用hive出现The query did not generate a result set!
  5. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
  6. 行业人士谈悄然成功的《星际战甲》所带来的启示
  7. 并查集——村村通(洛谷 P1536)
  8. oracle查找clob中的值,Oracle 查找带有CLOB字段的所有表
  9. 计算文件大小与文件行数
  10. 【面试】一些NLP的面试问题
  11. 查看Anaconda内置的Python版本的方法
  12. 运维工程师绩效考核表_运维人员初步 度绩效考核表
  13. Team Foundation Server 2013 with Update 3 Install LOG
  14. 采样频率和带宽的关系_示波器的带宽与采样率是什么关系
  15. 【UE4】GamePlay框架简介(蓝图)
  16. uniapp editor富文本编辑器,h5富文本编辑器封装成插件
  17. 关于怎么把Excel表格导入MySQL数据库中
  18. 按F12才能进入开机界面(戴尔游匣7559)
  19. 多媒体开发之---开源库ffmeg的log之子解析
  20. 日常一些办公软件问题

热门文章

  1. css设置背景图片等比例铺满整个页面
  2. waitpid WNOHANG
  3. 【首次接触Linux,大为震撼】
  4. IDEA+SpringBoot+Maven 引入三方Jar包
  5. 一文了解FCA、CPT、CIP贸易术语
  6. 周鸿袆谈360盈利模式:不作恶 总会挣钱
  7. 计算机科学速成课 Crash Course Computer Science 第三十集 万维网 The World Wide Web
  8. CSS一些样式感知和快捷键
  9. MapReduce之FileInputFormat切片机制
  10. 清华70%的高考状元去哪了