ServletFileUpload(Servlet文件上传)
//**文件上传** form表单提交必须指定Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型"multipart/form-data"
//1.创建磁盘文件项目工厂
DiskFileItemFactory df=new DiskFileItemFactory();
//2.设置上传的内存缓存区大小 4096=4KB
df.setSizeThreshold(4096);
//3.实列化Servlet文件上传对象 把'磁盘文件项目工厂'放入构造中(把缓存区大小放进去)
ServletFileUpload upload=new ServletFileUpload(df);
try {
//4.得到所有的上传表单对象集合 返回List<FileItem> 相当于每一个表单元素都是一个FileItem
List<FileItem> itemList=upload.parseRequest(request);
//6.获取文件夹的绝对路径
String path=request.getSession().getServletContext().getRealPath("\\upload"); //5.遍历表单对象集合
String ntid="";
String ntitle="";
String nauthor="";
String nsummary="";
String ncontent="";
String file="";
String name="";
for(FileItem item:itemList){
// System.out.println("InMemory:"+item.isInMemory());判断FileItem对象是否是一个简单的表单字段 //取出用户提交内容
if(item.isFormField()){//判断 item是否是简单的表单字段
if(item.getFieldName().equals("ntid")){
ntid=item.getString("utf-8");
}else if(item.getFieldName().equals("ntitle")){
ntitle=item.getString("utf-8");
}else if(item.getFieldName().equals("nauthor")){
nauthor=item.getString("utf-8");
}else if(item.getFieldName().equals("nsummary")){
nsummary=item.getString("utf-8");
}else if(item.getFieldName().equals("ncontent")){
file=item.getString("utf-8");
}
}else{
if(item.getFieldName().equals("file")){
//得到用户上传文件的路径
String fileName=item.getName();
//截取最后文件的名字
int index=fileName.lastIndexOf("\\");
name=fileName.substring(index+1); try {
//把文件写入服务器文件夹
item.write(new File(path,name));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
} catch (FileUploadException e) {
/* form表单中中没有设置
encType="multipart/form-data" method="post"
会造成此异常(FileUploadBase$InvalidContentTypeException)
*/
e.printStackTrace();
}
需要:
commons-fileupload.jar commons-io.jar 两个插件
ServletFileUpload(Servlet文件上传)的更多相关文章
- Servlet文件上传下载
今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...
- Servlet文件上传(ServletFIleUpload,DiskFileItemFactory,FileItem)
1:我们学的是表单文件上传,就是在一个FORM中提交相应的信息,和之前我们的提交的注册信息之类的表单是不同的,所以要先改变一下FORM的属性,enctype="multipart/form- ...
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- servlet文件上传
1.获取文件上传路径 String path=request.getServletContext.getRePath("/WEB-INF/resources"); 2.获得工厂 3 ...
- servlet文件上传2——复合表单提交(数据获取和文件上传)
上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...
- Servlet 文件上传
Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码 ...
- jsp Servlet 文件上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Servlet文件上传和下载的复习
上传 使用Servlet完成上传和下载相较于使用Struts框架有点麻烦,毕竟更偏底层了 项目中主要使用的jar包: commons-io-2.2.jar commons-fileupload-1. ...
- servlet文件上传及下载
servlet3.0中提供了对文件上传的直接支持,不需要借助任何第三方上传组件,直接使用Servlet3.0提供的API就能够实现文件上传功能. servlet 代码: package ni.jun. ...
随机推荐
- Scala 具体的并行集合库【翻译】
原文地址 本文内容 并行数组(Parallel Array) 并行向量(Parallel Vector) 并行范围(Parallel Range) 并行哈希表(Parallel Hash Tables ...
- nodejs 的安全
1.connect中间件csrf 原理:在express框架中csrf 是通过connect 模块的中间件来解决的.其原理是在前端构造一个隐藏的表单域“_csrf” ,后端生成一个值,作为该表单域,然 ...
- 记录一下,如何配置nodejs nginx的反向代理
本文是在mac下配置nodejs 在nginx下的反向代理 1.安装nodejs,之前就安装了. 2.安装nginx ,我采用的直接源码安装 3.进入 /usr/local/nginx/conf 目录 ...
- Android开发:第四日——SQLite初接触
一.SQLite 介绍 SQLite一个非常流行的轻量级嵌入式数据库,SQLite支持多数的SQL92标准,在一些场合下其性能优于MySql等数据库引擎,并且只利用很少的内存就有很好的性能.此外它还是 ...
- 【转帖】Moodle平台的5个新玩法
[玩坏Moodle平台]Moodle平台的5个新玩法 1.RSS订阅 Moodle平台可以导入外部博客(或其他提供RSS的服务),并显示在Moodle内置的博客系统中.无论是自己的个人网站还是他人的博 ...
- 菜鸟调错(七)——控制台中执行mvn命令后提示‘cmd’不是内部或外部命令
最近在cmd下使用mvn命令时,在执行完以后总会出现一句“‘cmd’不是内部或外部命令,也不是可执行程序或批处理文件”,如下图: 虽然命令执行成功了,不会有什么影响,但是身为强迫症晚期的我是绝对不能忍 ...
- Java Inner Classes
When thinking about inner classes in java, the first thing that comes to my mind is that, WHY do we ...
- dede教程之后台登录是自动跳出解决方法
有时也不知道什么原因,登录后台时输入全部正确点确认按钮时却会自动跳出.必须输入http://你的域名/dede/login.php才可以登录.通过尝试最终解决了问题,下面分享出来: 1.打开根目录da ...
- Jenkins Code Sign error: No provisioning profiles found
=== BUILD TARGET JenkinsTest OF PROJECT JenkinsTest WITH CONFIGURATION Release === Check dependencie ...
- 在线PDF编辑网站http://www.pdfescape.com
网站地址:http://www.pdfescape.com 先转载一个简单介绍的文章 如果你以前很少阅读PDF文档,电脑中也没有PDF阅读器:adobe reader,foxit reader之类的软 ...