绕过文件系统,jsp文件上传绕过

文件上传就是对文件进行读写,需要编写大量的代码来实现,而且容易发生异常。幸运的是,有很多实用的工具,可以帮助我们实现文件上传的功能,其中应用比较多的是 Commons-FileUpload 组件。本节我们在 JSP 中使用 Commons-FileUpload 组件来实现文件上传。

Commons-FileUpload 组件具有以下特点:

使用简单:Commons-FileUpload 可以内嵌到 JSP 页面中,所以只需要编写少量的代码就可以完成文件的上传功能。

能够全程控制上传内容:使用 Commons-FileUpload 组件提供的对象及操作方法,可以获得上传文件的信息,即文件名称、类型和大小等。

能够控制上传文件的大小和类型:为了避免在上传过程中出现异常数据,Commons-FileUpload 组件提供了相应的方法来控制上传文件。

Commons-FileUpload 组件依赖于 FileUpload 和 Commons,需要 commons-fileupload-xx.jar 和 commons-io-xx.jar 文件。

commons-fileupload-xx.jar 下载地址:https://commons.apache.org/fileupload/

commons-io-xx.jar 下载地址:https://commons.apache.org/io/  Commons-FileUpload组件API  下面我们介绍一下 Commons-FileUpload 组件的接口和实现类。

1. ServletFileUpload类

ServletFileUpload 类用于实现文件上传操作,常用方法如下:

方 法

说 明

public void setSizeMax(long sizeMax)

设置上传文件总量的最大值 (包含文件和表单数据)

public List parseRequest(HttpServletRequest req)

解析 form 表单提交的数据,返回一个 FileItem 实例的集合

public static final boolean isMultipartContent(HttpServletRequest req)

判断请求信息中的内容是否是”multipart/form-data“类型,是则返回 true,否则返回 false。

public void setHeaderEncoding(String encoding)

设置转换时所使用的字符集编码

2. FileItem接口

FileItem 接口用于封装单个表单字段元素的数据,一个表单字段对应一个 FileItem 实例,本节示例中使用的是其实现类 DiskFileItem。FileItem 接口提供的常用方法如下:

方 法

说 明

public boolean isFormField()

用于判断 FileItem 类对象封装的数据是一个普通文本表单字段,还是一个文件表单字段,如果是普通表单字段则返回 true,否则返回 false。因此,可以使用该方法判断是否为普通表单域,还是文件上传表单域。

public String getName()

获取文件上传的文件名

public String getFieldName()

返回表单字段元素的 name 属性值

public long getSize()

获取上传文件的大小

public String getString()

将 FileItem 对象中保存的主体内容以一个字符串返回。其重载方法 public String getString(String encoding) 中的参数用指定的字符集编码方式

public void write()

将 FileItem 对象中保存的主体内容保存到指定的文件中。

3. FileItemFactory接口与实现类

创建 ServletFileUpload 实例需要依赖 FileItemFactory 工厂接口。DiskFileItemFactory 是 FileItemFactory 接口的实现类,该类的常用方法如下。

方 法

说 明

public void setSizeThreshold(int sizeThreshold)

设置内存缓冲区的大小

public void setRepository(String path)

设置临时文件存放的目录  JSP上传文件  JSP 和 HTML Form 标签一起使用,来允许用户把文件上传到服务器。上传的文件可以是文本文件、图像文件或其它任何文档。

创建上传文件表单时,需要注意以下几点:

表单的 method 属性必须设置为 POST 方法,不能使用 GET 方法。

表单 enctype 属性应设置为 multipart/form-data。

表单 action 属性应设置为对应的 Servlet,用来处理文件上传的逻辑代码,下面示例中使用 FileUploadServlet 处理逻辑。

使用 标签上传单个文件,属性 type=”file”。上传多个文件需添加多个 标签。

拓展

表单的 enctype 属性有以下 3 个值:

1、application/x-www-form-urlencoded:默认值,用于处理少量文本数据的传递。向服务器发送大量的文件或二进制数据时,效率很低。

2、multipart/form-data:上传二进制数据,只有使用了 multipart/form-data 才能完整的传递文件数据,进行上传操作。

3、text/plain:用于向服务器传递大量文本数据,适用于电子邮件的应用。

开课吧广场-人才学习交流平台

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/325913.html

(0)

相关推荐

  • 网络挣钱的正经路子(通过网络赚钱的方法)

    网络挣钱的正经路子都有哪些?进入21世纪后互联网实现了飞速的发展,这为很多人提供了致富的平台,他们依靠互联网挣钱了可观的财富。互联网日新月异,从开始的电商到现在的直播,实现财富变现的方式也越来越多。网络挣钱的路子很多,今天咱们就一起来看看网络挣钱的正经路子都有哪些?   1.自媒体 自媒体是现在网络挣钱最火的方式之一,要做自媒体都得一个规划方向。你…

    2022-01-05
  • 借贷宝推广(借贷宝里跟陌生人借钱)

    借钱这个场景发生在很多情境下,有的可能是临时救急,有的可能是买房立业,每个人境遇不同,选择的借款方式也不尽相同。 社会上常见的借款方式,主要有以下几种。 一是银行,银行贷款是大家最熟悉的一种贷款方式,但银行比较谨慎,手续复杂,对于急需用钱的个人和中小微企业比较麻烦。 二是民间个人借贷。急需钱的时候,大多数人还是会基于了解信任,第一选择是找亲戚朋友,方便快捷,…

    2021-11-30
  • 我为什么要辞职去卖肉夹馍(卖肉夹馍一晚上能挣多少钱)

    我为什么要辞职去卖肉夹馍(卖肉夹馍一晚上能挣多少钱)我为什么要辞职去卖肉夹馍(卖肉夹馍一晚上能挣多少钱)我为什么要辞职去卖肉夹馍(卖肉夹馍一晚上能挣多少钱)我为什么要辞职去卖肉夹馍(卖肉夹馍一晚上能挣多少钱)

    都说父爱如山,父亲一直扮演着一个沉默寡言,默默付出的角色,不会表达,也不会有明显的举动,但总是在最需要的时候撑起一片天空,看着自己年迈的父亲慢慢老去,心里很不是滋味,有很多父亲都在通过不同的方式爱着自己的儿女,有一位一直以卖肉夹馍的父亲,靠着卖馍的钱供着自己的一双儿女读到研究生,背后的辛酸只有自己的知道。   勤俭踏实 这位老父亲的肉夹馍在当地很受…

    2021-11-30 投稿
  • 中国开战了最新消息(俄罗斯与日本开战最新消息)

    中国开战了最新消息(俄罗斯与日本开战最新消息)中国开战了最新消息(俄罗斯与日本开战最新消息)中国开战了最新消息(俄罗斯与日本开战最新消息)中国开战了最新消息(俄罗斯与日本开战最新消息)

    俄乌冲突打响后,整个国际社会受到了巨大冲击,再加上目前全球经济逆全球化,各国进入存量竞争,导致国际社会越来越动荡,各处爆发战争的风险也越来越大。 在中国周边,就有4场潜在的战争,其中3场可能导致中国直接参与。 中国**问题和日韩 第一场潜在的战争,是中国解决**问题时,可能导致的和**的军事冲突。 这个问题由来已久,最早可以追溯到日本在侵华战争中强制占据了我…

    2023-05-25 投稿
  • 应用试客最新版本(赚钱最快的软件排名)

    应用试客最新版本(赚钱最快的软件排名)应用试客最新版本(赚钱最快的软件排名)应用试客最新版本(赚钱最快的软件排名)应用试客最新版本(赚钱最快的软件排名)

    这个东西适合找点烟钱碎片化时间。八块钱可以提现一次到微信。 方法很简单,下载了这个链接里面的应用试客登陆了然后就下载应用,下载以后呢就 后台挂机两分钟哪怕你锁屏也是记入时间的,苹果用户0.8元到1.8元一个应用挂机两分钟就行。 没事做的时候可以用应用试客赚点烟钱,当然了新用户首次登陆的时候任务很多 第一天应该赚个三四十块钱没问题 后续没那么多了 大家可以试试…

    2022-01-07 投稿
  • 10个比1688便宜的拿货网(比1688便宜的拿货网站整理)

    10个比1688便宜的拿货网(比1688便宜的拿货网站整理)10个比1688便宜的拿货网(比1688便宜的拿货网站整理)10个比1688便宜的拿货网(比1688便宜的拿货网站整理)10个比1688便宜的拿货网(比1688便宜的拿货网站整理)

    在互联网发展如此迅速的今天,很多人都想要开个网店或者开个实体店,因为现在进货再也不用一个人背着包拿着钱坐火车去进货,大家只要在手机app上点几下,物流就会把货送过来。 但是大家所知道的批发网站也就是慧聪网、阿里巴巴等几个网站,甚至还有些人从淘宝的商家手里批发货物,你们觉得这样会有竞争力么? 那么我们怎么去找源头厂家,去拿又便宜又好的产品,下面我就来为大家介绍…

    2022-04-27 投稿
  • 白龙王说长得漂亮的人怎样(白龙王说长相漂亮)

    上世纪八九十年代,在香港发生的故事,说起来比电影都精彩。 那个年代,涌出了风华绝代的女明星,也暗藏着还未淡出江湖的黑暗势力。 正因如此,娱乐圈流传着这样一桩情事—— 向华胜说:张敏,离开了我,没人敢要你! 汪雨跳出来喊:我敢! 两个背景深厚、实力雄浑的人,一时间剑拔弩张。 一位背靠着新义安,一位人称“京城四少”。张敏真不愧是香港“四大尤物”之一,竟惹得两位大…

    2023-04-04
  • 开机后不显示桌面,win7不显示桌面图标怎么回事

    在有些用户朋友们在使用电脑的时候,发现开机后没哟显示桌面,其实这是因为电脑在运行程序的时候,是要和电脑安装的系统匹配的,如果你安装了不兼容的软件,就容易explorer.exe进程出现故障,就会出现无法显示桌面。下面就让我们一起看看Win7系统不显示桌面的解决方法吧。 1、同时按【Ctrl+Alt+Delete】,点击“启动任务管理器” 2、随后,鼠标右击“…

    2023-06-24
  • 南京六大高中(南京私立高中)

    #头条创作挑战赛# #教育听我说#? 早前,教育部、国家发展改革委、财政部日前发布《关于深入推进义务教育薄弱环节改善与能力提升工作的意见》,提出鼓励各地建设九年一贯制学校,同时强调不得规划建设豪华学校。 南京秦淮外国语学校 南京秦淮外国语学校创建于1996年,是经南京市教育主管部门批准的民办全日制普通中学(2016年创办了小学部),是一所以强化英语教学为特色…

    2023-04-04
  • 流放之路bd,流放之路双持格挡卫士

    流放之路bd,流放之路双持格挡卫士流放之路bd,流放之路双持格挡卫士流放之路bd,流放之路双持格挡卫士流放之路bd,流放之路双持格挡卫士

    流放之路特玩的全职业开荒路 双格挡卫士新血毒版 前言: 决斗者是偏向于近战类型的职业,总体可分为单手带盾、双持、双手武器、弓四种,其中弓属于比较早期的冷门玩法之一。对于流放之路前期开荒时的难度,很多新手想必都略有耳闻,很多老玩家也会忠告新手,千万不要玩近战BD,而这里,我们将要给大家介绍的,就是流放之路BD系列中,近战最硬的两个流派之一的卫士双格挡。 格挡是…

    2023-06-26 投稿
  • 落红万点愁如海,春来萧索如斯是什么意思?

    落红万点愁如海,春来萧索如斯是什么意思?落红万点愁如海,春来萧索如斯是什么意思?落红万点愁如海,春来萧索如斯是什么意思?落红万点愁如海,春来萧索如斯是什么意思?

    一盏香茶,手握书卷,品味着”若问闲情都几许?一川烟草,满城风絮,梅子黄时雨”,禁不住遐思荡漾:这样婉约柔美的词句,不知道是出自哪位风度翩翩,温文尔雅的世家公子?我甚至一度以为这是秦观的手法。但是,假如当他真正站在我们面前的时候,真会让人大跌眼镜。他不但喜欢舞枪弄棒,而且奇丑无比。有多丑呢?《宋史》说他”长七尺,面铁色,眉目…

    2022-05-01 投稿
  • 挖井人指的是什么(吃水不忘挖井人出自哪里)

    挖井人指的是什么(吃水不忘挖井人出自哪里)挖井人指的是什么(吃水不忘挖井人出自哪里)挖井人指的是什么(吃水不忘挖井人出自哪里)挖井人指的是什么(吃水不忘挖井人出自哪里)

        知识点 课文分析: 《吃水不忘挖井人》记叙了革命领袖毛主席在江西领导革命时,带来战士和乡亲们挖井,解决了名叫沙洲坝的村子的吃水困难问题。乡亲们感激毛主席,解放以后在井边立碑纪念,饮水思源。 本文共有3个自然段,第一段交代了事情发生的时间、地点。 第二段写为了解决村民的吃水问题,毛主席带领战士和乡亲们挖了一口井。 第三段写乡亲们饮水…

    2022-05-09 投稿