绕过文件系统,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:用于向服务器传递大量文本数据,适用于电子邮件的应用。

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

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。

(0)

相关推荐

  • zepeto教程,怎么用artbreeder捏脸

    这个周末好像被大家的3D头像刷屏了,从姐妹合影到各种旅游胜地玩耍,甚至是异地尬舞…… 不说别的,可以随心所欲的设计卡通版,自己的五官、发色、妆容和服饰就已经足够满足了大家的时尚梦吧? 除此之外,摆出可爱的鬼脸或者是和心爱的爱豆合影,简直不要太开心! 更有网友表示,如果是一年没见的好朋友,也能在App里飞到北海道泡温泉了,速度绝对是70迈,心情自由自在! 而且…

    2023-07-10 投稿
  • 做生意的窍门(做生意的窍门或方法三个字)

    一,生意难做,贵在持之以恒,虽然十笔笔难成一笔,但总有一笔成功。所以可以见。无论做什么,坚持很重要。大家一定要好好坚持。胜利属于你。 二,做生意赚钱很诱人,但不要让钱遮住自己。还是那句老话,君子爱财,取之有道。 三,做生意不要耍小心眼儿,但要多个心眼儿。主要还是做生意是要坦诚,但也要留一手。 四,做生意需要很多朋友,但不要完全信任,依赖任何朋友。 五,做生意…

    投稿 2023-02-04
  • 陌陌更名为“Hello”的背后(新版本陌陌如何退出账号)

    陌陌科技更名为“Hello”集团,APP名称不变。陌陌更名背后,本质是想改变什么?据悉,陌生人社交软件手握一定流量却跑不出一个高增长的商业模式,陌陌想要做出改变。 8月3日是陌陌成立十周年的日子,公司CEO王力在内部信中表示:“过去十年公司更多的在连接人与人,未来随着虚拟现实的进一步发展,VR/AR硬件的不断成熟并且向家用普及,以及人机交互模式的变化,必然会…

    2022-01-08
  • 物联卡流量用不了咋回事(物联卡使用注意事项)

    今天呢,小编为大家整理一篇关于物联卡的使用情况说明的文章。三大运营商最近这方面的调整也是产生了一些不同的差异,和之前也有了一些不同的地方,所以在使用起来,最新的情况又加了一些限制,所以小编在这里详细讲述一下。 第一点,首先来介绍移动运营商的物联卡 移动目前也是国内通信占比最大的一家,移动物联卡包括价格也是从之前三网最便宜的变成了最贵的。先不说价格了,先来谈使…

    2023-06-01
  • 电信星辰卡套餐申请入口,29元月星辰卡284G通用流量

    和大家分享的是一款电信的手机卡,名为电信星辰卡,这款卡月租29元,包含54G通用流量,230G定向流量,套内无免费通话但首月免费。我们来看下电信星辰卡29元套餐内容,套餐内:月租29元,54G通用流量,230G定向流量;套餐外:流量5元/G,通话0.1元/分钟,短信0.1元/条。 电信星辰卡优惠 原月租39元/月,参与充值100得200,优惠后前10个月29…

    2022-09-03
  • 朱亚文潘禹彤 全新制作电影故事

    年少恋爱最难忘,这是因为当年的你们都青涩、天真,毫无功利之心,所以多年之后回忆起那段故事,仍旧心存悸动。 这一点无论是普通人还是当红明星身上,感受应该都是一致的。 今天给大家说一说当红的几位男演员,都曾经在走红前有过甜蜜的恋情。 李曼于前一年因拍摄张艺谋的《满城尽带黄金甲》而走红,但后期发展非常一般,被评为“最惨谋女郎”。 相遇后他们并没有马上擦出火花,而是…

    投稿 2023-05-22
  • 好看的年代文完结推荐(年代文小说推荐经典排行)

    同为书迷的小编,我给大家整理了六本巨爽年代文小说,爽文,穿越时空,穿书,种田文, 快穿, 女配, 重生 。让你分分钟看上瘾不睡觉!记得收藏哦,以后就不怕再书荒啦!   目录   1.《七零之穿成男主前妻》 作者:元月月半   2.《咸鱼穿成年代文炮灰[快穿]》 作者:雨落窗帘   3.《穿到年代文中搞科研[穿书]》 作…

    2023-06-18 投稿
  • 白色情人节是几月几日(白色情人节是几月几日中国人过吗)

    最早起源于公元三世纪时的罗马,后来普遍认为日本最早接受并推广这个节日,白色情人节(日语:ホワイトデー)订于3月14日,。最早诞生于1977年,由日本福冈市博德区的甜点(菓子)制造商「石村万盛堂」所发起,以鼓吹收到心意的一方应该要回礼给对方,作为促销糖果的手段,节日最早称为「糖果赠送日」(キャンデーを赠る日)。自1980年起,因为糖果所使用的砂糖是白色,所以改…

    2021-11-28
  • 纪昀简介及作品,纪昀追求怎样的生活状态

    纪昀(1724年8月3日-1805年3月14日),字晓岚,别字春帆,号石云,道号观弈道人、孤石老人,直隶献县(今河北省献县)人。   纪昀在清朝乾嘉时代居于高位、负有盛名、学问淹贯,被公认为文坛泰斗,是中国和世界文化史上的一位文化巨人。其一生巧妙运用“三窟哲学”,与乾隆帝、刘墉、和珅共事,在关键时刻善于逆袭,以机锋妙趣来营造气氛、化解冲突,兼具谏臣…

    2023-06-25
  • 日本漫画无翼岛漫(日本漫画无翼岛漫画大全)

    端脑(全彩版)》前情提要:精神小伙夏驰一直有着一个有关于脱单的梦想。而在经过了万里长征般的追求后,晴知终于答应了他的告白。而同为推理社成员的他们还在一起拍摄了一部根据真实事件改编的电影。可令夏驰没想到的是,电影刚刚杀青,晴知便人间蒸发,再也觅不到踪影了…   而现在夏驰收到的唯一线索就是放在晴知桌上的一封诡异信件。上面写着:“当你收到这…

    2021-12-28 投稿
  • 高中生赚钱方法有哪些,高中生可以通过什么方式赚钱

    高中毕业挣1000块应该不成问题。赚钱的渠道和方式太多了。   第一,找个亲戚开的工厂或者店铺,兼职;不,试试麦当劳必胜客。再不行的话,主干道上招聘信息那么多,随便谁申请都行,1000块肯定不止这些。况且这些工作都是团队合作型的,这段经历也会给你新的启发。 第二,在当地的推送公司做兼职在目前的市场上仍然需求量很大。我们公司以前找兼职做本地推送的大学…

    2022-04-27 投稿
  • 大学象牙塔是什么意思(大学之所以被称为象牙塔的原因)

    《汉字解密》暑假补习班开课啦! 厌倦了枯燥的试题?打开电视,和字点儿一起来场汉字之旅吧。 生物课,我们可以到丛林里捕捉鸟兽虫鱼。 烹饪课,系上围裙玩转油盐酱醋。 艺术课(鼔琴书画),拿起画笔、架上琴,躁动起来。 数学课,鸡兔同笼、老鼠打洞,一起来解古代的趣味数学题。 思想品德课,聆听儒家传承千年的美德(仁义礼智信)。 这个夏天,和字点儿一起享用中华五千年文明…

    2021-12-25 投稿