common-fileupload实现文件上传功能
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实现文件上传功能相关推荐
- 用fileupload处理文件上传
用fileupload处理文件上传 作者:◇ 刘冬 发文时间:2003.07.09 15:52:43 Commons是Apache开放源代码组织中的一个Java子项目,该项目主要涉及一些开发中常用的模 ...
- Apache Commons fileUpload实现文件上传
Apache的commons-fileupload.jar可方便的实现文件的上传功能,本文通过实例来介绍如何使用commons-fileupload.jar. @author:ZJ 07-2-22 B ...
- 后端:Layui实现文件上传功能
今天给大家分享采用AspNet MVC+前端框架LayUi实现文件上传功能,感兴趣的朋友可以学习一下. 文件上传实体(UploadFile.cs) public class UploadFile{pu ...
- jquery.form.js java_使用jQuery.form.js/springmvc框架实现文件上传功能
使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jque ...
- Node.js新手教程——怎样实现文件上传功能
作者:zhanhailiang 日期:2014-11-16 本文将介绍怎样使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/node ...
- java批量上传文件_Spring boot 实现单个或批量文件上传功能
一:添加依赖: org.springframework.boot spring-boot-starter-thymeleaf javax.servlet jstl org.apache.tomcat. ...
- vue文件上传功能bootstrap框架
vue文件上传功能bootstrap框架 封装公共组件components/fileupload/FileUpload.vue 内容如下: 公共组件 ```html <template>& ...
- java前后端分离的实现方式_采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
MyUploader-Backend 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 简介 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能. 前端采用 vue.js + ...
- ie6多文件上传_一个好的“文件上传”功能必须要注意的这些点你都知道吗?
检查上传文件扩展名白名单,不属于白名单内,不允许上传:[前端和后端都要做好校验] 上传文件的目录必须是http请求无法直接访问到的.如果需要访问的,必须上传到其他(和web服务器不同的)域名下,并设置 ...
最新文章
- windows linux C/C++获取操作系统、CPU、内存信息、硬盘、IP和MAC
- SSAS分区数据量过大处理参考 转- Recommended Practices with Partitions and Aggregations
- ASP.NET学习6 XML文档的操作
- java使用jdbc调用hive出现The query did not generate a result set!
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
- 行业人士谈悄然成功的《星际战甲》所带来的启示
- 并查集——村村通(洛谷 P1536)
- oracle查找clob中的值,Oracle 查找带有CLOB字段的所有表
- 计算文件大小与文件行数
- 【面试】一些NLP的面试问题
- 查看Anaconda内置的Python版本的方法
- 运维工程师绩效考核表_运维人员初步 度绩效考核表
- Team Foundation Server 2013 with Update 3 Install LOG
- 采样频率和带宽的关系_示波器的带宽与采样率是什么关系
- 【UE4】GamePlay框架简介(蓝图)
- uniapp editor富文本编辑器,h5富文本编辑器封装成插件
- 关于怎么把Excel表格导入MySQL数据库中
- 按F12才能进入开机界面(戴尔游匣7559)
- 多媒体开发之---开源库ffmeg的log之子解析
- 日常一些办公软件问题