iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java web中的servlet3 upload上传文件实践
  • 561
分享到

java web中的servlet3 upload上传文件实践

servlet3uploadava 2023-05-30 22:05:34 561人浏览 八月长安
摘要

Servlet 3.0之前的版本中,文件上传是个挺让人头疼的问题,虽然有第三方框架来实现,但使用也还是比较麻烦,在Servlet 3.0中,这些问题将不复存在,Servlet 3.0对文件上传提供了直接支持,配合Servlet 3.0中基于

Servlet 3.0之前的版本中,文件上传是个挺让人头疼的问题,虽然有第三方框架来实现,但使用也还是比较麻烦,在Servlet 3.0中,这些问题将不复存在,Servlet 3.0对文件上传提供了直接支持,配合Servlet 3.0中基于Annotations的配置,大大简化上传件的操作。

一、javax.servlet.http中Part接口

public interface Part

要上传文件必须使用multipart/fORM-data作为request body。

版本:

Servlet 3.1 - Apache Tomcat 8.0.33

二、方法概述

方法 描述
void delete() 删除磁盘上关于此part对象的缓存文件
java.lang.String getContentType() 获取浏览器传递过来的ContentType
java.lang.String getHeader(java.lang.String name) 获取浏览器传递过来的特定的header,参数是header的名字
java.util.Collection getHeaderNames() 获取传递给这个part的所有header的名字
java.util.Collection getHeaders(java.lang.String name) 获取该name对应的所有的value
java.io.InputStream getInputStream() 获取InputStream对象,可以用于获取上传的文件的内容
java.lang.String getName() 获取对应于此part的multipart表单的名字
long getSize() 获取此part的大小,如果是上传文件的话,表示上传的文件大小
java.lang.String getSubmittedFileName() 如果此part表示上传文件的话,返回上传的文件的名字
void write(java.lang.String fileName) 一个比较方便的方法,将上传的文件写入磁盘中

三、@MultipartConfig注解

用于处理文件上传的servlet必须使用@MultipartConfig注解,@MultipartConfig注解有4个属性。

属性 类型 概述
fileSizeThreshold int 文件大小阀值,当文件大小大于此值时,文件将被写入磁盘
location String 服务器端目录,服务器把客户端上传的文件默认存入此目录下
maxFileSize long 允许上传的文件的最大大小,默认是-1,表示没有限制
maxRequestSize long 限制该multipart/form-data请求的最大数据量,默认是-1,表示没有限制

四、处理文件上传的servlet

//此处的@MultipartConfig注解给出了文件存放的地址和允许上传的文件最大值@MultipartConfig(location="F:/", maxFileSize = 1024*1024*20)@WEBServlet(name="UploadFileTest", urlPatterns="/upload")public class UploadFileTest extends httpservlet{ private static final long serialVersionUID = 1L; //使用了commons-logging和log4j来处理日志 private static Log log = LogFactory.getLog(UploadFileTest.class); //获取注解中设置的值 private static MultipartConfig config = UploadFileTest.class.getAnnotation(MultipartConfig.class); public UploadFileTest() { // TODO Auto-generated constructor stub } public void doPost(HttpServletRequest request,  HttpServletResponse response) throws ServletException, IOException{ request.setCharacterEncoding("UTF-8"); Part part = null; try{  part = request.getPart("file");//获取part用于处理上传的文件 }catch(IllegalStateException ise){ //上传的单个文件超出maxFileSize或者上传的总的数据量超出maxRequestSize时会抛出此异常  if(config.maxRequestSize() == -1L)//如果注解中没设置此项,那就是单个文件超出限制  log.error("单个文件超限");  else if(config.maxFileSize() == -1L)//如果注解中没有设置单个文件最大限制,那就是总数据量超限。  log.error("总数据量超限");  else  log.error("Error"); } if(part == null)  return; String fileName = part.getSubmittedFileName();//获得上传的文件名,没有判断用户没有选择文件直接提交的情况,没有判断上传文件失败的情况 log.info("contentType : " + part.getContentType()); log.info("fileName : " + fileName); log.info("fileSize : " + part.getSize()); log.info("header names :"); for(String headerName : part.getHeaderNames())  log.info(headerName + " : " + part.getHeader(headerName)); //为了避免文件重名,将时间组合到了文件名中。实际项目中可以考虑使用用户主键或者生成一个唯一的ID来组合文件名。 String saveName = System.currentTimeMillis() + fileName; part.write(saveName);//将上传的文件保存到磁盘,默认是注解中location的相对地址,也可以传入一个绝对路径 response.setContentType("text/html;charset=UTF-8");  PrintWriter out = response.getWriter();  String docType =  "<!doctype html public \"-//w3c//dtd html 4.0 " +  "transitional//en\">\n";  out.println(docType +   "<html>\n" +   "<head><title>Upload File</title></head>\n" +   "<body bGColor=\"#f0f0f0\">\n" +   "<h2 align=\"center\">Upload File</h2>\n" +   "<h3 align=\"center\">上传文件" + fileName+ "成功," +   "可以到项目目录的F:\\下查看,保存的文件名是:"+   saveName+"</h3>\n" +   "</body></html>"); }}

--结束END--

本文标题: java web中的servlet3 upload上传文件实践

本文链接: https://www.lsjlt.com/news/221880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java web中的servlet3 upload上传文件实践
    Servlet 3.0之前的版本中,文件上传是个挺让人头疼的问题,虽然有第三方框架来实现,但使用也还是比较麻烦,在Servlet 3.0中,这些问题将不复存在,Servlet 3.0对文件上传提供了直接支持,配合Servlet 3.0中基于...
    99+
    2023-05-30
    servlet3 upload ava
  • servlet3如何实现文件上传操作
    这篇文章主要为大家展示了“servlet3如何实现文件上传操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“servlet3如何实现文件上传操作”这篇文章吧。在Servlet2.5中,我们要实现...
    99+
    2023-05-30
    servlet3
  • vue3中怎么使用el-upload上传文件
    本文小编为大家详细介绍“vue3中怎么使用el-upload上传文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3中怎么使用el-upload上传文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。el-...
    99+
    2023-07-06
  • vue+el-upload实现多文件动态上传
    vue+el-upload多文件动态上传,供大家参考,具体内容如下 使用场景 点击【添加/删除】,可动态增加/删除行数,并为每行上传附件,附件暂存前端,点击【上传】可以将所有附件和部...
    99+
    2024-04-02
  • elemetUi 组件--el-upload如何实现上传Excel文件
    这篇文章将为大家详细讲解有关elemetUi 组件--el-upload如何实现上传Excel文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。elemetUi 组件--...
    99+
    2024-04-02
  • el-upload大文件切片上传怎么实现
    这篇文章主要介绍“el-upload大文件切片上传怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“el-upload大文件切片上传怎么实现”文章能帮助大家解决问题。html<el-upl...
    99+
    2023-07-05
  • vue使用el-upload实现文件上传功能
    因为我是vue+springboot前后分离,要跨域,就不能用默认的action写请求地址,我用axios时最困扰的就是怎么拿到那个真实的文件,然后给传给后台。 其实可以通过自带的o...
    99+
    2024-04-02
  • element-ui el-upload实现上传文件及简单的上传文件格式验证功能
    在后台管理系统中总是会用到上传文件的功能, 想实现的样式如下:(实现上传文件后,在input输入框显示文件名 ) 结构代码如下: <el-form-item label="...
    99+
    2022-11-16
    文件上传elementUI中upload el-upload上传图片 element ui 上传
  • 【Java】Web应用的文件上传下载
    🎄欢迎来到@边境矢梦°的csdn博文🎄  🎄本文主要梳理Web应用的文件上传下载🎄 🌈我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生dz...
    99+
    2023-08-31
    java
  • Vue+UpLoad实现上传预览和删除图片的实践
    1、用vue+Element完成一个图片上传、点图预览、加删除功能,如图: 2.首先我们再组件中引入这一段代码,每个属性的使用也都放在这里了: <el-upload cl...
    99+
    2024-04-02
  • 怎么进行java web 文件上传
    这篇文章的内容主要围绕怎么进行java web 文件上传进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获! java...
    99+
    2024-04-02
  • vue怎么使用el-upload实现文件上传功能
    这篇文章主要介绍了vue怎么使用el-upload实现文件上传功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用el-upload实现文件上传功能文章都会有所收获,下面我们一起来看看吧。uploa...
    99+
    2023-06-30
  • element el-upload文件上传覆盖第一个文件怎么实现
    这篇文章主要介绍“element el-upload文件上传覆盖第一个文件怎么实现”,在日常操作中,相信很多人在element el-upload文件上传覆盖第一个文件怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-07-05
  • el-upload大文件切片上传实现示例详解
    目录背景htmljs备注背景 前端上传大文件时,会出现跨域错误等各类错误,另切片上传可以提高上传效率。固进行以下代码记录,方便后期cv() html <el-upload a...
    99+
    2023-03-15
    el upload大文件切片上传 el upload文件上传
  • vue2中基于vue-simple-upload实现文件分片上传组件功能
    本文最主要参考的是这一篇,后端也是用django来完成。 大文件上传(秒传/断点续传)_使用Vue-Simple-Uploader插件 --Vue/Django完整实现 https:...
    99+
    2024-04-02
  • 结合el-upload组件实现大文件分片上传功能
    目录前情提要代码实现完整代码前情提要 Element UI的el-upload上传组件相信各位小伙伴都已经非常熟悉,最近接了一个新需求,要求在el-upload组件基础上实现分片上传...
    99+
    2024-04-02
  • 怎么使用el-upload组件实现递归多文件上传
    本篇内容介绍了“怎么使用el-upload组件实现递归多文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、需求描述:在页面上点击按钮...
    99+
    2023-07-05
  • element中的el-upload附件上传与附件回显
    目录1、上传2、附件回显开发中经常也会遇到附件的上传和回显,最方便的就是我们封装一个公共组件在页面中引用 1、上传 在src里面新建一个文件夹 <template> ...
    99+
    2022-11-13
    element el-upload el-upload附件上传 el-upload附件回显
  • ant-design的upload组件中实现粘贴上传实例详解
    目录什么是粘贴上传?实现步骤总结什么是粘贴上传? 粘贴上传是指用户可以通过复制和粘贴方式上传文件或图片,而不必选择本地文件。这种功能可以为用户带来更加便捷的上传体验,尤其适用于需要上...
    99+
    2023-05-19
    ant-design upload粘贴上传 upload粘贴上传
  • Java实现FTP文件上传
    目录一、配置FTP文件服务器 FTP两种模式简介 PORT(主动模式) Passive(被动模式) 1、安装vsftpd 2、配置vsftpd 3、重启启动服务 4、登录二、java...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作