java上传组件FileUpload
如果表单中有文件要上传,也就是有<input type="file" name="name"/>
就需要在form标签中添加enctype="multipart/form-data"属性 如果添加此属性,在操作
页面servlet中,用request.getParameter("name")获取普通表单数据就会
出错java.lang.NullPointerException
可以使用FileUpload组件操作上传文件
1,导入jar包;commons-fileupload-1.2.2.jar commons-io-1.4.jar
上传jsp页面fileupload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>上传表单</title>
</head>
<body> <form action="${pageContext.request.contextPath }/servletupload1" method="post" enctype="multipart/form-data">
<p>用户名:<input type="text" name="username"></p>
<input type="file" name="file1"/><br/>
<input type="file" name="file2"/><br/>
<input type="submit" value="上传"/>
</form>
</body>
</html>
servlet页面进行操作
package com.henau.fileupload; import java.io.IOException;
import java.util.Iterator;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload; public class servletupload1 extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
DiskFileItemFactory factory=new DiskFileItemFactory();//磁盘工厂
ServletFileUpload upload=new ServletFileUpload(factory);//创建处理工具
if(!upload.isMultipartContent(request)){//判断是否有multipart/form-data
return;
}
upload.setHeaderEncoding("UTF-8");//解决中文文件名乱码问题
upload.setFileSizeMax(10*1024*1024);//设置最大上传文件10M
try {
List<FileItem> items=upload.parseRequest(request);//获取表单列表
Iterator<FileItem> it=items.iterator();//获取列表迭代器
while(it.hasNext()){
FileItem item=it.next();
String fieldname=item.getFieldName();
if(!item.isFormField()){//isFormField()是否是普通文本
response.getWriter().write(fieldname+":文件大小:"+item.getSize()+"<br/>");
response.getWriter().write(fieldname+":文件名称:"+item.getName()+"<br/>");
response.getWriter().write(fieldname+":文件类型:"+item.getContentType()+"<br/>");
}else{
response.getWriter().write(fieldname+":普通文本数据:"+item.getString("UTF-8")+"<br/>");
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} }
页面显示效果
username:普通文本数据:用户名
file1:文件大小:14
file1:文件名称:IO流.txt
file1:文件类型:text/plain
file2:文件大小:2621
file2:文件名称:javaSE需求.txt
file2:文件类型:text/plain
java上传组件FileUpload的更多相关文章
- java深入探究10-文件上传组件FileUpload,邮件开发
1.文件上传组件FileUpload 1)java提供了文件上传的工具包 需要引入:commons-fileupload-1.2.1.jar(文件上床组件核心包) commons-oi-1.4(封装了 ...
- 文件上传组件FileUpload 以及邮箱搭建JavaMail
文件上传与下载 1.1 文件上传 案例: 注册表单/保存商品等相关模块! --à 注册选择头像 / 商品图片 (数据库:存储图片路径 / 图片保存到服务器中指定的目录) 文件上传,要点: 前台: 1 ...
- java上传组件commons-fileupload的一些使用方法
在 http://www.apache.org,下载commons-fileupload-1.2.1.jar包,并把这个包加到工程中,以下是记录这个上传组件的一些使用方法. html测试页面,实现上传 ...
- .JavaWeb文件上传和FileUpload组件使用
.JavaWeb文件上传 1.自定义上传 文件上传时的表单设计要符合文件提交的方式: 1.提交方式:post 2.表单中有文件上传的表单项:<input type="file" ...
- Commons FileUpload文件上传组件
Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧. 页面 <form method="POST" enct ...
- java基础篇---文件上传(组件)
转载自:http://www.cnblogs.com/oumyye/p/4234969.html 文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本 ...
- 从零开始编写自己的C#框架(23)——上传组件使用说明
文章导航 1.前言 2.上传组件功能说明 3.数据库结构 4.上传配置管理 5.上传组件所使用到的类 6.上传组件调用方法 7.效果演示 8.小结 1.前言 本系列所使用的是上传组件是大神July开发 ...
- Flash上传组件之SWFUpload文件上传
一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...
- Baidu WebUploader 前端文件上传组件的使用
简介 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流I ...
随机推荐
- springmvc中forward和redirect
一.跳转 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; im ...
- C# 反射 通过类名创建类实例
“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...
- IAR EWARM Argument variables $PROJ_DIR$ $TOOLKIT_DIR$
在IAR中的help中输入argument variables时会找到这样的一个列表: Argument variables On many of the pages in the Options d ...
- workflow 工作流
https://documentation.devexpress.com/#Xaf/CustomDocument3356
- 【JavaScript】深入理解JavaScript之强大的原型和原型链
由于JavaScript是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链. AD: hasOwnProperty函数: hasOw ...
- 【JavaScript】你知道吗?Web的26项基本概念和技术
Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. ...
- Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容
Citrix 服务器虚拟化之二十八 XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1) 服务器桌面:发布场中服务器的整个 ...
- Effective_java之二:慎用重载函数
每周写一篇技术博客的愿望一直没实现, 从这周開始每周五晚10点是写博客的时间 OOP的一个重要特性就是多态,实现多态的目的有多种途径.比方:重载overload.重写overwite.面向接口编程等等 ...
- D2 前端技术论坛总结(下)
此篇文章不接上篇了,下午4场我就不一一介绍了,主要总结下 D2 整场下来都讲了些什么. 整场下来,就3个关键词:nodejs,多终端,工程化 nodejs 从杭js到d2,大会上提到最多的词汇 ...
- scala目录
1. 使用Scala(构建这样一个应用,它会取回一份列表,其中包括用户持有的股票的代码以及股份,并告知他们在当前日期为止的这些投资的总价.这包含了几件事:获取用户输入.读文件.解析数据.写文件.从We ...