//**文件上传**    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文件上传)的更多相关文章

  1. Servlet文件上传下载

    今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...

  2. Servlet文件上传(ServletFIleUpload,DiskFileItemFactory,FileItem)

    1:我们学的是表单文件上传,就是在一个FORM中提交相应的信息,和之前我们的提交的注册信息之类的表单是不同的,所以要先改变一下FORM的属性,enctype="multipart/form- ...

  3. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  4. servlet文件上传

    1.获取文件上传路径 String path=request.getServletContext.getRePath("/WEB-INF/resources"); 2.获得工厂 3 ...

  5. servlet文件上传2——复合表单提交(数据获取和文件上传)

    上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...

  6. Servlet 文件上传

    Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码 ...

  7. jsp Servlet 文件上传

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. Servlet文件上传和下载的复习

    上传 使用Servlet完成上传和下载相较于使用Struts框架有点麻烦,毕竟更偏底层了 项目中主要使用的jar包: commons-io-2.2.jar  commons-fileupload-1. ...

  9. servlet文件上传及下载

    servlet3.0中提供了对文件上传的直接支持,不需要借助任何第三方上传组件,直接使用Servlet3.0提供的API就能够实现文件上传功能. servlet 代码: package ni.jun. ...

随机推荐

  1. JAVA自已设计JSON解析器

    当然,有很多很好的JSON解析的JAR包,比如JSONOBJECT,GSON,甚至也有为我们测试人员而打造的JSONPATH,但我还是自已实现了一下(之前也实现过,现在属于重构). 思想是这样的,以这 ...

  2. Java socket 多线程编程 示例

    参照网上代码: 1.工程: 2.代码: Client.java package com.my.socket.test; import java.io.BufferedReader; import ja ...

  3. PHP 数组排序方法总结

    sort:本函数为 array 中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序. rsort:本函数对数组进行逆向排序(最高到最低). 删除原有的键名而不仅是重新排序. asort:对数组进 ...

  4. openssl命令行工具简介 - RSA操作

    原文链接: http://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.html 首先介绍下命令台下openssl工具的简单使用: ...

  5. iOS项目立项

    哎,计划总是赶不上变化,仿佛又回到了十年前高三的时候,每月.每周.每天都有计划,但是每周.每天都有计划外的因素导致了计划时时变,唯一不变的就只有变化了. 想了许久,中期计划内还是转回iOS吧,说转回其 ...

  6. 顺序执行到来的消息 actor

    在某项目里,有个 actor 需要做一些持久化的操作,这些操作耗时比较久,理应使用异步的代码来写,但是需求又强调每次只能做一个持久化操作,后来的请求应该等待.一个显然的做法是阻塞式的写,这样就能比较简 ...

  7. C用函数指针模拟重载 C++重载

    C中为什么不支持重载,即同一作用域内不允许出现同名函数? 我们都知道重载是c++面向对象的特性.c语言中是不存在的.所谓重载简单来说就是一个函数名可以实现不同的功能,要么输入参数不同或者参数个数不同, ...

  8. bootstrap fileinput 文件上传工具

    这是我上传的第二个plugin 首先第一点就是因为这个好看 符合bootstrap的界面风格 第二是可以拖拽(虽然我不常用这个功能 但是这样界面看起来就丰满了很多) 最后不得不吐槽这个的回发事件 我百 ...

  9. PL/SQL异常

    CASE_NOT_FOUND CASE selector WHEN selector_value_1 THEN statements_1 WHEN selector_value_2 THEN stat ...

  10. oracle 语句创建表空间、用户、授权

    /*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace yuhang_temp tempfile 'D:\oracledata\yuhang_te ...