java上传组件_java上传组件FileUpload

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值