绕过文件系统,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)

相关推荐

  • alexa提升(提升alexa排名)

    要让网站的数据好看,不但在网站的权重、关键词的排名、访问的pv流量方面有不错的成绩,在ALEXA方面一定也不能差。现在SEO手把手教你快速提升网站的ALEXA排名,让你的网站脱颖而出! 腾讯官网ALEXA数据查询 那么为什么SEO对ALEXA排名也需要呢? SEO本身就称之为搜索引擎优化,有利于搜索引擎排名和有利于搜索引擎对网站评价的各种数据,作为专业的SE…

    2022-01-12
  • 不为五斗米不折腰是谁故事与哪些有关

    成语“不为五斗米折腰”的主人公是?这是蚂蚁庄园今日最新题目,蚂蚁庄园不为五斗米折腰的主人公是谁呢?答案中有两个选项,分别是:陶渊明和李白,你们觉得成语“不为五斗米折腰”的主人公是陶渊明还是李白呢? 下面小编就为大家带来蚂蚁庄园成语“不为五斗米折腰”的主人公是?答案,一起来看看,成语“不为五斗米折腰”的主人公是陶渊明还是李白吧。 成语“不为五斗米折腰”的主人公…

    2022-04-22
  • 黑暗侵袭3惊悚恐怖电影(黑暗侵袭3为什么不拍)

    今年,在新冠疫情及各国应对气候变化而采取措施等多种因素作用下,全球能源进一步出现供需失衡,刺激国际原油、天然气、煤炭等化石能源价格持续上涨至历史高位,引发了一场席卷全球的能源危机。 这场危机背后有何历史背景?它以何种形式影响到不同的国家?石油和天然气出口大国是否可以长期利用能源布局?过度依赖化石能源的国家如何自救?与此同时,资源约束型国家仍在漫漫探索转型之路…

    2022-01-14
  • 炫舞怎么秒消费币(炫舞里如何秒杀)

    725炫舞节”来啦!今天是一个专属于炫舞玩家的欢庆日。《天天炫舞》(炫舞天团)在继与迪士尼互动合作后,更携手人气男神魏晨,带来全新资料片“炫舞天团”,为千万玩家带来全新的音舞体验。我们不仅仅是游戏,我们是一个世界。在这个全民舞动的时代,怎么能不一起狂欢!我们需要725!一个为舞而生,因舞而聚的首个炫舞节日!炫舞节期间,游戏内推出了诸多专属活动,商城全场五折起…

    2023-02-03
  • 农村致富小机器,一万元以下致富小机器

    咱老百姓在家里闲着没事,干点啥能够快速赚钱,为家庭增加一笔可观的收入呢? 尤其是在农村,就业机会比较少。大家除了种地以外,无非就是养鸡养鸭养猪,牛气一点地搞个池塘养鱼。 所以我们可以做一些为咱农村的种植,养殖服务的工作。种植养殖是不是需要打井呢?农村家庭吃水是不是需要打井呢?咱家里安装一个水空调是不是需要打井呢?安装太阳能是不是也可以打井呢?咱农村开个洗车行…

    2022-04-22 创业项目
  • 阿里巴巴淘宝,阿里巴巴和淘宝哪个质量可靠

    《阿里巴巴淘宝:电商巨头的崛起与影响》 一、阿里巴巴淘宝的诞生与发展历程 阿里巴巴淘宝可能是在互联网发展的浪潮中逐渐孕育而生的。 也许它的诞生源于创始人对于电子商务模式的独特洞察和大胆尝试。 在早期,电商领域或许还处于一片混沌之中,而淘宝就像是一颗悄然发芽的种子,开始在互联网的土壤中生根发芽。 随着时间的推移,淘宝不断进行着自我革新和拓展。 它从最初的一个小…

    2025-05-14
  • 黑料不打烊 成都黑帽(怎样才能找到黑帽门)

    宜家门、黑帽门、地铁门,真是颠覆了云律的三观,看到黑帽门,男方的伤害是有多大,心里只剩阴影面积了。出轨在中国法律意味着什么呢?好多朋友可能有误解。 小A问到的是云律经常遇到的咨询 小A:我无意中翻出了他的微信聊天记录,小甜甜、亲亲、想你我看到这些字眼,头炸裂了,我怎么也想不到他可以做出这种事情,我一开始问他,他一直不承认,只说是朋友关系,我拿出了微信聊天记录…

    2022-01-05
  • 服装店经营管理方法与技巧(服装店铺经营技巧)

    开服装店做生意,无论店面大小都要懂得如何管理,就像一家企业公司那样,只有管理得井井有条的企业才是好企业,才能发展久远。以下是小编为您整理的服装品牌如何管理的相关内容。 货品的管理 主要从缺货、货品新鲜度、货品损耗度、库存方面管理。缺货是服装销售的一大敌人,所以店主一定要时刻了解货品数量,面对缺货产品及时补货,避免缺货给店铺带来业绩影响;在零售行业,产品总是会…

    2021-11-28
  • 418是什么日子(417是什么日子)

    (我是作家老三,头条号素老三,出版长篇小说《离婚真相》《香水有毒》等。2022年我体验生活做保姆,讲述东北人有趣的保姆故事。是故事,不是纪实。请勿对号入座。) 这天晚上,我原本请苏平和老沈去饭店吃饭。但我在许家做好晚饭,许先生夫妇却一直没有下楼,我觉得请假早走,不能只是跟老夫人说一声,应该跟许夫人或者是许先生打声招呼再离开,才妥当。 我开始在厨房收拾灶台,等…

    2023-03-28
  • dnf哪个副职业最赚钱(dnf什么副职业最赚钱)

    众所周知DNF中目前共有四大副职业,分别是炼金术士、控偶师、分解师、附魔师。虽然副职业都不少玩家来说都不是很上心。单正所谓行行出状元,一个行业干的好的话,总会有无限的机遇。副职业玩的转的话一样可以成为人生赢家哦。那么我们一起来看看最赚钱的副职业会给我们带来哪些优势吧。 分解师 分解师能够开启分解商店,分解可获得各种材料。分解一件装备,他有几率暴击。产出的晶体…

    2022-01-21
  • 威客网站排名(十大威客网排名)

    1、一品威客网: 目前较大威客网站之一,无需佣金,适合工作室、个人接单   1、猪八戒:比较老牌接单网站,接单话需要商家入注,会收取一定佣金,由于用户数量庞大,需要竞价排名   2、牛片网:专门做短视频交易平台 有单独专门接单专区,需要缴纳保证金。   3、站酷:个人作品宣传平台,插画平面单子比较多,想接平面插画单子小伙们比较适…

    2021-11-14 投稿
  • 羊肉怎么炖好吃又烂没腥味,炖羊肉没腥味的做法

    导语:天冷了,少吃猪肉多吃它,营养极高,冬天炖一锅,身体暖和还解馋! 4月13日,江苏省徐州市,徐州地区的家常菜和传统小吃,羊肉汤。 冬天,天气比较寒冷。每到这个时节,人们总是喜欢喝一碗热汤来抵御严寒。羊肉汤一直以来,都是冬季餐桌上汤菜的首选,羊肉吃起来比猪肉、牛肉更细腻,并且羊肉富含蛋白质、维生素、钙、铁等营养元素。 羊肉的热量在三者中最高,并且是性温的,…

    2022-04-19 投稿