commons-fileupload.jar的详解

升级Spring Boot文件上传功能:从commons-fileupload到commons-fileupload2-jakarta 本文将探讨在Spring Boot应用程序中实现文件上传功能的必要性,以及为什么需要从过时的commons-fileupload库升级到现代的commons-fileupload2-jakarta库。我们将提供解决问题的方法和步骤,确保您的应用程序在性能、安全性和兼容性方面保持最佳状态。 阅读详情
  1. 什么是文件上传?
     所谓的文件上传就是将客户端的资源通过网络数据传递到服务端,

  2. 为什么要用文件上传?
     讲道理,使用响应的方式也可以向服务器端上传文本数据,但是其过程比较费劲,而且如果上传的是图片等资源,则无法通过该方法上传。使用上传文件的更主要原因是因为一般上传的文件数据都很大。

  3. 文件上传的本质?
     文件上传的本质就是IO流的操作。服务器端通过流读取数据,然后对数据进行解析,得到上传文件的内容,然后保存在服务器端。

  4. 客户端如何上传数据?
     <1.>method=”post”;因为提交的数据会比较大,所以要使用post提交。
     <2.>必须使用要有name属性。
     <3.>在input标签中设置属性encType=”Multipart/form-data”。

  5. 服务器端如何处理数据?
     <1.>用request对象获取请求信息。
     <2.>通过request的getInputStream()方法,可以读取到所有请求正文消息。
     <3.>操作IO流,将所需要的信息保存在服务器端。

  6. fileupload.jar包是干嘛用的?
     commons-fileupload.jar通常和commons-io.jar包一起使用的。用来操作文件上传。里面封装了很多上传的功能,大大简化了我们写上传代码的复杂性。

  7. fileupload包中核心的三个类介绍:
    <1.>DiskFileItemFactory类
    作用:可以设置缓冲区大小以及临时保存位置。

     setSizeThreshold( int sizeThreshold )
    设置缓冲区大小,如果不设置,sizeThreshold大小为:10240(10KB)。
     setRepository( File repository );
    设置临时文件的保存位置,如果不设置,repository为系统的临时目录。
     DiskFileItemFactory();
    构造一个缓冲区大小为sizeThreshold和临时文件为目录为repository的文件项工厂。
     DiskFileItemFactory( int SizeThreshold , File repository );
    构造一个带指定参数的文件项工厂类。

    <2.>ServletFileUpload类
    作用:实现上传的一些实用程序集合。
     ServletFileUpload( DiskFileItemFactory factory );
    构造函数,使用factory指定的缓冲区大小和临时文件。
     public List<FileItem> parseRequest ( HttpSevletRequest request );
    解析request对象,得到所有的上传项,返回一个List<FIleItem>集合,其中每个FileItem就相当于一个上传项。
     boolean isMultipartContext ( HttpServletRequest request );
    用于判断是否为上传项,如果是就返回true。因为上传项中,encType=”Multipart/form-data”,所以如果提交有这条属性,则返回true。
     setFileSizeMax(long fileSizeMax);
    设置单个文件的上传的大小上限。
     setSizeMax(long sizeMax);
    设置总文件上传的大小上限。
     setHeaderEncoding( Charset charset);
    使用charset的编码进行请求进行处理,可以解决文件上传中的中文乱码的问题。
    注意: 使用request.setCharacterEncoding ( Charset charset)也可以解决中文乱码问题,但是不建议使用。

<3.>FileItem类
 isFormField();
判断是否为上传组件。
 String getFieldName();
获取该组件的名称。既:<input>标签中的name属性。
 String getName();
获取上传文件中的名称。
注意:浏览器不同,得到的效果会不一样。
1.包含全路径名称: 比如:C:\User\Administrator\demo.txt
2.包含上传文件名称: 比如:demo.txt

 getString()、getString(Charset charset)
两者的区别:一个使用默认编码,一个使用指定编码。
可以获取非上传组件的内容。
如果上传组件是文本类型,也可以获取到其文本内容。
 getInputStream();
获取上传文件的内容的输入流,使用文件复制就能完成文件的上传。
 delete();
删除临时文件。

8 . 中文乱码问题
 上传文件名称乱码:
 使用ServletFileUpload中的setHeaderEncoding(Charset charset)方法。
 非上传组件内容乱码 :
 使用FileItem中的getString(Charset charset)方法。

Java文件上传处理实用JAR包:commons-fileupload.jar commons-io。 阅读详情

相关推荐

最全的common-FileUpload.jar包

最全的common-FileUpload.jar包,里面有三个jar包,绝对你够用

JAVA文件的上传与下载使用Commons-fileupload.jar和commons-io.jar

首先导入jar包 Commons-fileupload.jar & commons-io.jar。

weixin_45433972的博客 1297

FileUpload所需的两个jar包

commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

使用commons-fileupload.jar自定义文件上传与读取

文件上传与读取 文件上传的基本思路: 将文件通过流的方式写入相对于当前项目的一个的文件夹中(这种方式是将图片放入tomcat容器中的) 读取的时候直接获取其(请求路径(存入数据库的路径)) 请求路径一般为当前项目的ContextPath 加上 相对于该项目的存放文件的路径 即 contextPath + upload (通过文件流的方式读取也行) 基本流程: 1.引入第三方jar包 commons...

weixin_40444280的博客 497

C++11并发与多线程笔记(2) 线程启动、结束,创建线程多法、join,detach

第二节 线程启动、结束,创建线程多法、join,detach 一、范例演示线程运行的开始 程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕 主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行 整个进程是否执行完毕的标志是:主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了,此时如果其他子线程还没有执行完,也会被强行终止【此条有例外,以后会解释】 创建

qq_38231713的博客 1万+

RK3588+TRL8367s 四网口千兆交换机配置与优化实战

本文详细介绍了基于RK3588高性能SoC与TRL8367s千兆交换芯片构建四网口交换机的完整实战流程。内容涵盖硬件连接、设备树配置、内核驱动加载、性能优化及常见问题排查,重点解析了RGMII时序调试、DSA架构配置等关键步骤,为嵌入式网络设备开发提供实用指南。

weixin_29266647的博客 672

java web文件上传包_JavaWeb 之 使用 commons-fileupload.jar 实现文件上传

一、文件上传文件的上传和下载,是非常常见的功能,在很多的系统中,或软件中都经常使用文件的上传和下载文件的上传主要分为下面几步:1、前台页面需要一个 form 标签,里面的 method 为 post 请求;2、在 form 标签必须添加 encType属性,且属性值必须是 multipart/form-data值;3、在 form 标签中使用 input type=file 添加上传的文件;4、在...

weixin_42303723的博客 345

IPMItool 控制风扇转速

然后手动设置风扇,最后一位0x1e为设置30%的转速(16进制)。最后4位 0x0f 表示15%,0x0a,表示10%,不建议小于10%,因为10%已经很静音了 如果再小怕不能控温,烧毁硬件。首先停止服务器的自动风扇控制,最后一位0x00表示停止自动风扇控制,0x01为开启自动风扇控制。首先开启主板上的ipmi 设置好 用户名密码。此过程可以在网上搜索,有很多的资料可以参考。解压只有在目录里面有ipmltool。下面是一些常用的修改温度命令。

m0_37970303的博客 5059

# Struts2 核心包 & 第三方依赖包详解(以 2.5.x 版本,面试标准回答)

## 一、官方核心包:`struts2-core-xxx.jar` > **Struts2 框架本体,整个框架最核心,必不可少。** 功能: 1. Struts2 完整MVC实现:前端控制器`StrutsPrepareAndExecuteFilter`、请求处理主流程; 2. 拦截器体系、Action代理、值栈(ValueStack)、ActionContext; 3. 结果视图(dispatcher、redirect、chain等各种result类型); 4. 内置类型转换器、输入校验框架、异常处理机制;

[Blog][Domain] programb.blog.youkuaiyun.com 190

Trae CN 使用入门指南

【代码】Trae CN 使用入门指南。

weixin_42551921的博客 8766

PICO G2 4K Unity开发环境配置完全指南

VR开发中,Android平台的硬件适配与Unity版本兼容性是基础性技术命题。PICO G2 4K作为基于骁龙845+Android 8.1的专用VR一体机,其开发链路高度依赖特定Unity LTS版本(2020.3.41f1)、NDK r21e及OpenJDK 11等工具链组合,本质是嵌入式Android VR Runtime与Unity IL2CPP ABI的深度对齐问题。该配置方案不仅解决ADB识别、APK签名、Logcat捕获等工程痛点,更支撑手柄6DoF追踪、射线交互、Haptic反馈等核心XR

weixin_30298497的博客 616

干货|Java文件上传如何实现的?

在Web应用中,由于大多数文件的上传都是通过表单的形式提交给服务器的,因此,要想在程序中实现文件上传的功能,首先得创建一个用于提交上传文件的表单页面。需要注意的是,为了使Servlet程...

传智播客的专栏 738

【YOLO系列】YOLOv5超详细解读(源码详解+入门实践+改进)

一文带你详细了解YOLOv5(含YOLO系列论文讲解+源码详解+入门实践+算法改进)

路人贾的博客 25万+

commons-fileupload.jar实现文件上传

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangjunhd.blog.51cto.com/113473/18331 Apache的commons-fileupload.jar可方便的实现文件的上传功能,本文通过实例来介绍如何使用commons-fileupload.jar。 @author:ZJ 07-2-22

TGM316750432的专栏 3571

Cesium 实现动态加载气象数据:渲染成动态雨雪/云层效果(源码 + 原理)

本文介绍了在Cesium中实现动态天气效果的技术方案。核心思路是通过时间轴驱动多层数据动态切换,包括:1)时间维度处理,按序列加载不同气象图层;2)空间维度处理,将气象数据切分为瓦片;3)效果层实现,制作风场、降水等动态可视化效果。文章详细讲解了后端数据预处理(生成瓦片和风场JSON)、前端实现(双层雷达瓦片交替渐变、风场粒子系统)的具体方法,并提供了完整的代码示例。此外还探讨了雨雪粒子、云层效果等增强功能,以及工程化建议,为构建科学准确的动态天气可视化系统提供了实用解决方案。

专注AI大模型,软件混淆,授权 621

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1030

Apache Commons fileUpload实现文件上传

Apache的commons-fileupload.jar可方便的实现文件的上传功能,本文通过实例来介绍如何使用commons-fileupload.jar。@author:ZJ 07-2-22Blog: [url]http://zhangjunhd.blog.51cto.com

649

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IT忍者神龟之基于cos.jar 的 图片上传

文件上传的方法有很多,可以基于commons-fileupload+commons-io的,其实也有基于cos.jar的方法,Jar 可以去http://www.servlets.com/cos/index.html 下载.   下面就以一个简单的图片上传+根据具体选项修改文件名的方法:   1.先写一个servlet类:   Java代码  

IT忍者神龟 984

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

apache 官网 下载commons-fileupload和 commons-io jar包

最近发现阿帕奇的下载方式有点奇怪啊,点进去之后全是目录,我要下载的文件在哪呢?? 这是jar包的官网地址 向下滑一下是这样的 很高兴的点了一下here,然后就蒙了 跳转不过去的话http://mirrors.hust.edu.cn/apache/ http下面的链接也能点 这个似乎是所有的资源入口处 看这个jar包的名字 commons-fileup...

落叶无痕的博客 3万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【亲测免费】 commons-fileupload.jar

commons-fileupload.jar 【下载地址】commons-fileupload.jar `commons-fileupload.jar` 是一个由Apache Commons项目提供的强大且易于使用的Java库,专门用于简化在Web应用程序中处理文件上传的过程。自从Servlet API本身不直接支持多部...

gitblog_09727的博客 681

下载Apache官网commons-fileupload.jar和 commons-io.jar包

最近在下载commons-fileupload和commons-io.jar 途经一:官网下载 进入Apache官网之后显示这样 往下滑可以看到各种版本,找一个版本点击here 就会看到如下界面,选择清华的镜像会稍微快一点。如果瞎子啊的是jar包就选择Binaries,后缀tar.gz适合macos或者是linux,后缀.zip适合Windows。如果想下载源码就选择Source 下载即可。...

Clown_pan的博客 1万+

java web文件上传所需要的commons-fileupload和 commons-io jar包

文章目录一、官网获取二、百度网盘分享三、分享与热爱 一、官网获取 学习java web文件上传时需要用到两个必备的jar包: commons-fileupload commons-io jar 但是网上很多博客都是需要分币才能够下载的,这里我介绍大家从官网下载,点下面的直达门就可以到达。 直达门 找到相应的包,打开binaries,里面就有对应的jar包了 *.tar.gz 的是linu...

qiukui111的博客 2338

文件上传commons-fileupload.jar的使用

1.commons-fileupload.jar 常用API介绍说明 commons-fileupload.jar它刚好可以帮我们解析文件上传的数据。 commons-fileupload.jar 需要依赖 commons-io.jar 这个包,所以两个包我们都要引入。 2.commons-fileupload.jar和commons-io.jar包中,我们常用的类有哪些? boolean Ser...

weixin_44854027的博客 1508

fileUpload的commons-fileupload和 commons-io 下载

commons-fileupload和 commons-io 下载 第三方apache上传组件:commons-fileupload FileUpload依赖于Commons IO,因此类路径下要有Commons IO的jar包 下载网址:http://mirrors.hust.edu.cn/apache/ ctrl+f 进行搜索:commons 1、点击进入 下拉到如下,先点击fileupload 2、点击binaries下载jar 3、 4、打开下载到的压缩包解压,复制如下的jar包到自己的项目

大帅哥的博客 2504
上一篇: 设计模式_03 装饰模式
下一篇: JAVA中文件上传的实例
pseudonym_
博客等级 码龄10年 88粉丝 205原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值