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

相关推荐

  • 雪莉老公 你的感受如何

    6月11日,有网友爆料在看大网红“雪梨”直播时,画面里一位身穿白色T恤戴眼镜的男子恶意怒骂粉丝,其用语非常难听,令人不堪入耳。此事件一度在网络上引起剧烈讨论。 很多人为了看这场直播已经准备很久了,剁手的钱早早地准备好就为了在今天好好剁手,可谁能想到中途会出现这种出乎大家意料之外的情况。很多人都是冲着雪梨这个人才来关注这场直播,很多都是她的粉丝,这下子不仅给雪…

    2023-06-04 投稿
  • 麦客crm,什么叫crm系统

    SaaS点评网(www.saasruanjian.com)于2019年上线,是一个SaaS软件选型交流平台,致力于帮助企业找到合适的产品。 CRM作为一种先进的管理模式和管理方法,适用于任何行业和企业。之前为大家盘点了20款CRM客户关系管理系统,今天就来和大家分享几款免费的CRM系统,快点看过来! 本文重点:1.CRM系统是什么? 2.CRM客户关系管理系…

    2023-07-11
  • 铁腕军阀秘籍,中国各系军阀的手机游戏

    什么游戏可以集第一人称射击,与队友配合,塔防,自由度高于一体? 今天说一下发布于2008年的游戏《铁腕:军阀冬季攻势》。 铁腕:军阀冬季攻势,是一款第一称的射击游戏,该游戏虽然好玩,但是小众,玩的人不多。游戏内容是阻击敌人的进攻,破坏堡垒。 游戏可以单机也可以联机,单机可以选择游戏的简易程度,并且还给你4个队友(人机),联机,建立服务器,朋友可以加入进去。 …

    2023-06-29 投稿
  • 写文章赚钱(写文章赚钱的平台)

    后台回复“听课”,听免费课程 后台回复“写作”,加入写作群 一大早打开展天博客,就收到平台发来的通知信息,说我参加头条征文活动,获得了1000元奖金。   我按捺不住激动的心情,赶紧点进去查看,原来是我9月10号参加“追梦路上的好心人”头条征文活动,获得了二等奖,奖金1000元,另外还有50块钱的奖励,第一次获得这么多奖金,真的很开心。 &nbsp…

    2022-01-21
  • 郑州富士康待遇有多少

    文 春公子 富士康真的是血汗工厂吗?要回答这个问题,只有在富士康有过工作经历的朋友们才有资格回答。 最近一段时间,网络上爆出了富士康部分园区变得冷清的新闻,为此很多网友们开始担忧,富士康虽然技术含量不怎么高,但确确实实让很多人就业。 富士康巅峰的时候,在中国有120万的员工,这背后不仅是120万个家庭的生计,更是对拉动当地的经济有很大的推动作用! 前段时间,…

    2023-05-22
  • dnf锻造系统(锻造系统类小说)

    作者:godenel DNF国服新春版本已经登陆国服,巴卡尔攻坚战正式登场,相信很多要回归或者已经回归的小伙伴已经开始摩拳擦掌准备追一下进度了,现在让我们一起来看下如果跟上大部队,进军团本。 新春版本Q&A Q:为何选择新春版本回归? A:新春版本是一年一度的重大版本,新春版本伴随着丰富的回归和成长活动,新春版本回归可以获得免费的强化12锻造8武器,…

    2023-05-30
  • 现在什么发帖软件最火(自动发帖软件可靠吗)

    今天,老狐在摸鱼的时候刷到了一个令人悲伤的消息: 二十多年互联网老站猫扑正式关闭发帖功能! 于是我这个被猫扑“滋润”多年的人立马上官网看了一下它的现状。   才发现猫扑网其实早在 4 月 15 号就发公告表示: 为了防止垃圾信息泛滥,营造良好的网络环境; 已于 2021 年 4 月 20 日起正式关闭发帖功能。 谁知道关闭发帖功能 8 天后的今天,…

    2021-11-19 投稿
  • 台式电脑排行榜,618京东电脑优惠多少

    一年一度的京东618正在火热进行中,为给消费者提供更加专业的爆款电脑产品选购指南。今年618期间,京东上线电脑预售竞速排行榜,排行榜中含笔记本、台式机、平板电脑、学生平板与职教工具、电脑组件等多品类,覆盖绝大部分一线品牌,也将全方位为消费者提供电脑相关产品换新选购攻略。 作为用户在学习、办公、电竞、娱乐等使用场景中不可或缺的产品,截至5月26日,笔记本电脑销…

    2023-07-08
  • 命令行清理电脑垃圾,电脑利用运行命令清理电脑

    电脑使用一段时间后,各种电脑垃圾就越积越多了,导致我们电脑不断出现开机慢、运行卡顿等问题。那么有什么方法可以帮助我们快速清理电脑垃圾呢?其实使用运行命令代码就可以快速清理电脑垃圾了。今天就让我们来看看如何使用运行命令代码来快速清理电脑垃圾吧! 首先,使用组合键[win + R]调出运行框,然后在对话框中输入[CMD]后点击下方确定。 此时成功进入代码输入页面…

    2022-03-22 投稿
  • 如何网上赚钱?选择一个卖点使劲做流量

    1、选卖点,一定要有共鸣。   2、内容就是流量,好的内容里面一定有案例。   3、成功案例就是卖焦虑,现在市面上几乎都是成功案例。当1000人往东边走的时候,你一个人往西边走,流量就来了。   4、做差异化,然后对标同行,做出自己的特点。   5、能够引起别人共鸣的内容就是好内容,能够撬动他人的情绪点。  …

    2022-04-20
  • 阿拉伯拼音(阿拉伯拼音怎么读)

    1. 阿语字母: 阿拉伯语是一种拼音文字,共有28个字母。每个字母有3种发音方式,在不同的语法和句法环境中发音不同。每个字母在字头、字中和字尾的书写方法不同。 阿拉伯语是世上最难掌握的语言之一,某些字母的发音及叠音等是阿拉伯语独有的。为了更快的应用语言达成沟通,不建议初学者从字母和发音开始学,而建议在语言的实践中积累和调整。 2. 阿语词汇: a) 阿语词汇…

    2022-05-10
  • 暹罗猫的价格(暹罗猫市场价)

    暹罗猫多少钱一只?暹罗猫的一般价格 很多关心暹罗猫或者想买暹罗猫的人首要关心的就是暹罗猫的价格问题,该怎么才能挑选到价格合适的暹罗猫又保证不会被骗呢?今天小编就来跟大家介绍一下暹罗猫的基本价格。 如果你的预算不高,或者只想买个品相一般的纯种暹罗猫,它的价格基本在3000-4000左右浮动。 而非纯种的暹罗猫价格就比较低廉了,市场的价格基本上都在1000以下,…

    2023-03-29