如果表单中有文件要上传,也就是有

就需要在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

pageEncoding="UTF-8"%>

上传表单

用户名:

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 items=upload.parseRequest(request);//获取表单列表

Iterator it=items.iterator();//获取列表迭代器

while(it.hasNext()){

FileItem item=it.next();

String fieldname=item.getFieldName();

if(!item.isFormField()){//isFormField()是否是普通文本

response.getWriter().write(fieldname+":文件大小:"+item.getSize()+"
");

response.getWriter().write(fieldname+":文件名称:"+item.getName()+"
");

response.getWriter().write(fieldname+":文件类型:"+item.getContentType()+"
");

}else{

response.getWriter().write(fieldname+":普通文本数据:"+item.getString("UTF-8")+"
");

}

}

} 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

原文:http://www.cnblogs.com/lzzhuany/p/4977211.html

java上传组件_java上传组件FileUpload相关推荐

  1. java上传加密_Java上传下载文件并实现加密解密

    使用 Jersey 服务器实现上传,使用 HTTP 请求实现下载 引入依赖 在 pom.xml 中添加 Jersey 相关依赖 com.sun.jersey jersey-client 1.18.1 ...

  2. java byte转文件大小_java上传文件大小转换(字节转kb/mb/gb)

    /** * 字节转kb/mb/gb * @param size * @return */ public String getPrintSize(long size) { //如果字节数少于1024,则 ...

  3. java调用office接口_java调用com组件操作word使用总结(jacob)

    ava调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作; 一.准备工作 先了解一下概念 ...

  4. java 获取 jframe 内容_Java如何获取组件的JFrame?

    该演示给出了有关如何获取JFrame组件的示例.在此示例中,我们尝试JFrame从按钮操作侦听器事件获取.为了得到JFrame我们使用的SwingUtilities.getRoot()方法,它将在小程 ...

  5. java保存图片进度条_Java上传文件进度条的实现方法(附demo源码下载)

    本文实例讲述了Java上传文件进度条的实现方法.分享给大家供大家参考,具体如下: 东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以 ...

  6. java 文件上传 大小_java 上传文件大小转换为 GB/MB/KB/B

    1.工具类 package cn.cmodes.common.utils; import java.io.File; import java.io.FileInputStream; import ja ...

  7. java http请求图片_Java上传带图片的Http请求

    服务器端想得到的?不可以的,必需上传了,才可以. 如果中间想得到. Android提交post请分享上传图片,Java如何获取HttpEnAndroid端发送post请分享,上传图片,把byte[]弄 ...

  8. java excel导入前台_java上传excel表格并读取数据返回到前台

    如果你对里面的代码不熟悉不知道的话,建议先浏览一遍代码再拿去用, 这里我介绍一下这个过程的思路: 1.定义变量那些就不说了 , 2.首先是上传文件并保存的代码 3.根据excel表的路径来读取文件,之 ...

  9. java 文件上传乱码_java上传txt文件,出现中文乱码

    public String uploadBook(MultipartFile file, Book book, HttpServletRequest request) { try{ String li ...

最新文章

  1. 2022-2028年中国中小企业电子商务市场投资分析及前景预测报告
  2. Maven学习总结(5)——聚合与继承
  3. html中正方形列表标签属性,如何在HTML中创建带有方形项目符号的无序列表?
  4. 2007武汉.NET俱乐部沙龙-VS2008、WPF、Silverlight
  5. 控制附件的大小 php,wordpress如何修改默认上传附件限制大小
  6. mkdir: Permission denied: user=root, access=WRITE
  7. C# -- 在底图上动态生成文字和图片
  8. NLTK简单入门和数据清洗
  9. 三种方式解决vue中v-html元素中标签样式
  10. windows时间设置
  11. 人脸识别(三) 摄像头中的人脸识别+LFW数据集测试
  12. dojo省份地市级联之省份Dao接口类(三)
  13. Windows系统下使用维基百科中文语料训练Word2Vec词向量
  14. 最快的PID参数整定口诀
  15. randn函数加噪声_Matlab笔记——AWGN函数详解与实例——AWGN加性高斯白噪声+QPSK调制...
  16. 独家解读 | 2018 恶意机器流量报告
  17. 两个单位方向矢量夹角的余弦值推导过程【遥感散射角余弦】
  18. 设置Latex页眉页脚边距——fancyhdr的使用
  19. Sonar代码扫描常见规则总结
  20. 【哲学心理学】何为占有欲?何为真爱?

热门文章

  1. 第8章-常用优先级和css3
  2. jeecg自定义按钮使用exp属性不起作用
  3. 如何使用用window.open()
  4. 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
  5. sevlet 注释initparams_servlet3.0注解配置学习笔记
  6. 千牛通知栏常驻是什么意思_店铺运营|内贸1688 店铺真正的权重是什么?
  7. 简单快速的用SpringBoot访问静态资源(图片、html)
  8. 做简单的android 软件推荐,Android_适用于Android开发的简单聊天软件,适用于android 开发。是一个简 - phpStudy...
  9. kafkaspot在ack机制下如何保证内存不溢
  10. Windows安装mysql8.0