Servlet3.0文件上传
Servelt3.0文件上传作为一种便捷的文件上传方式很是值得我们去应用的
1.Servlet3.0文件上传使用步骤
- 浏览器端的要求
- 表单的提交方法必须是post
- 必须有一个文件上传组件 <input type="file" name="f"/>
- 必须设置表单的enctype="multipart/form-data
<form action="/upload/upload3" enctype="multipart/form-data"
method="post">
用户名:<input type="text" name="username"><br>
文件:<input
type="file" name="f">
<input type="submit"><br>
</form>
- 服务器端的要求
- 在Servelt上添加注解 @MultipartConfig
/**
* Servlet3.0文件上传下载
*/
@WebServlet("/upload3")
@MultipartConfig
public class upload3 extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2.Servlet3.0文件上传如何获取数据
- 获取普通上传组件 request.getParameter(name属性的值);
- 获取文件上传组件 Part p = request.getPart("表单文件组件的name名");
- 获取表单文件的name名
//获取表单提交页面name的属性值
String name = part.getName(); - 获取真实文件名
//获取文件真实文件名
String header = part.getHeader("content-disposition");
String realName=header.substring(header.indexOf("filename=")+10,header.length()-1); - 获取文件大小
//获取文件的大小
long size = part.getSize(); - 获取文件的输入流
//获取文件的输入流
InputStream inputStream = part.getInputStream();
- 获取表单文件的name名
3.Servlet3.0文件上传可能会遇到的问题
- 名字重复的问题 如果用户提交了两个1.png只会保存第一次 这样在实际开发中是很不可取的 解决方法有一下
- 采用随机名称DSJDLSJDIHU739832hsdhf.png
- 文件安全问题 如果文件都放在WebContext目录下 那么在互联网上任何人都可以访问的到 那么针对重要的文件可以这样做
- 放在meta-inf目录下
- 放在web-inf目录下
- 放在项目外部 计算机文件夹中
Servlet3.0文件上传的更多相关文章
- servlet3.0文件上传与下载
描述:文件上传与下载是在JavaEE中常见的功能,实现文件上传与下载的方式有多种,其中文件上传的方式有: (1)commons-fileupload: (2)Servlet 3.0 实现文件上传 (3 ...
- servlet3.0 文件上传功能
注意 jsp页面中file选择 的要有属性 name='file' package com.webserver.webservice; import java.io.File; import java ...
- PHPcms v9.6.0 文件上传漏洞
title: PHPcms v9.6.0 文件上传漏洞 date: 2021-4-5 tags: 渗透测试,CVE漏洞复现,文件上传 categories: 渗透测试 CVE漏洞复现 文件上传 PHP ...
- Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例
在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ...
- 【代码审计】UKCMS_v1.1.0 文件上传漏洞分析
0x00 环境准备 ukcms官网:https://www.ukcms.com/ 程序源码下载:http://down.ukcms.com/down.php?v=1.1.0 测试网站首页: 0x0 ...
- java servlet 3.0文件上传
在以前,处理文件上传是一个很痛苦的事情,大都借助于开源的上传组件,诸如commons fileupload等.现在好了,很方便,便捷到比那些组件都方便至极.以前的HTML端上传表单不用改变什么,还是一 ...
- Android Retrofit 2.0文件上传
Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface ...
- NetCore3.0 文件上传与大文件上传的限制
NetCore文件上传两种方式 NetCore官方给出的两种文件上传方式分别为“缓冲”.“流式”.我简单的说说两种的区别, 1.缓冲:通过模型绑定先把整个文件保存到内存,然后我们通过IFormFile ...
- yii2.0 文件上传
Yii 2.0 出来好长时间了,一直都是看下官方网站,没实践过,今天弄了下图片上传操作. 1创建一个简单的数据表 mysql> desc article; +---------+-------- ...
随机推荐
- 如何编写安全的PHP代码
转于:http://www.nowamagic.net/php/php_HowToWriteSafePhpCode.php
- Cadence技巧01:利用Excel速新建原理图元件库
Cadence技巧01:利用Excel速新建原理图元件库 听语音 | 浏览:1698 | 更新:2015-07-02 09:41 | 标签:excel 1 2 3 4 5 6 7 分步阅读 一键约师傅 ...
- Memcached安装以及PHP的调用
Memcached安装以及PHP的调用 [南京·10月17日]OSC源创会开始报名:Swift.大型移动项目构架分享 » 一:安装libevent 由于memcached安装时,需要使用libeven ...
- ehcache 在集群环境下 出现 Cause was not due to an IOException or NotBoundException
RMI 远程调用地址不正确导致 <?xml version="1.0" encoding="UTF-8"?> <ehcache> < ...
- FreeRtos——单任务
原创(当然借鉴了官网资料^_^): 在之前的移植工作准备好之后,我们需要调用freertos提供给我们的API函数实现操作系统地运行.首先,第一个函数: 任务函数任务是由 C 语言函数实现的.唯一特别 ...
- hive 中与mysql 中函数同名不同意的方法记录
max 函数 在hive中max函数是一个聚合函数,所以,而且返回值是double ,而且后面必须跟group by ,这个和mysql差异很大 Built-in Aggregate Function ...
- PHP高并发的解决方案
这几天面试,被问到这样一个问题:如何解决大流量的高并发问题.起初不知所措,在查阅相关资料,以及网上大牛们的解答之后,总结出以下几点: 1.服务器,如果同时访问量超过10W的话,需要采用专用服务器来承载 ...
- 第二百六十节,Tornado框架-内置模板方法
Tornado框架-内置模板方法 直接在html文件使用,不需要传值 Tornado默认提供的这些功能其实本质上就是 UIMethod 和 UIModule,也就是Tornado框架定义好的html文 ...
- 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)
http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,“至少”一词可以给我们提示,我们可以枚举 ...
- 清除信号量队列导致zabbix自动关闭
前几天在海外UCloud机器上部署了一套zabbix proxy和zabbix agentd,可是第二天一大早就收到邮件说zabbix_proxy挂掉了,上去查一下发现两台机器中的一台的proxy和a ...