在 http://www.apache.org,下载commons-fileupload-1.2.1.jar包,并把这个包加到工程中,以下是记录这个上传组件的一些使用方法。

html测试页面,实现上传两个文件,并填写四个参数。

[html] view
plain
copy

  1. <span style="font-size:16px;"><form  action="../FileServlet" enctype="multipart/form-data" method="post" ></span>
[html] view
plain
copy

  1. <span style="font-size:16px;"> <dt>本人名称:</dt>
  2. <dd><input type="text" name="name"  class="file-input" />dd>
  3. <dt>银行账户:</dt>
  4. <dd>< <input type="text" name="account"  class="file-input" /></dd>
  5. <dt>开户银行:</dt>
  6. <dd>< <input type="text" name="bank"  class="file-input" /><dd>
  7. <dt>身份证号:</dt>
  8. <dd> <input type="text" name="number"  class="file-input" /></dd>
  9. <dt>身份证照片:</dt>
  10. <dd><input type="file" name="photo"  class="file-input" /></dd>
  11. <dt>银行卡照片:</dt>
  12. <dd> <input  type="file" name="card"  class="file-input" /> </dd></span>
[html] view
plain
copy

  1. <span style="font-size:16px;"></form> </span>

在上传文件的时候,form表单的entype必须是multipart/form-data,这种情况下,在台通过request.getParameter();方法就无法获得参数,返回的都是空值。所以这里就不能再使用getParameter()这个方法,下面介绍一下commons-fileupload里的一些方法。

首先把请求消息实体中的每一个项目封装成单独的DiskFileItem(FileItem的实现)对象,这是通过使用实现了org.apache.commons.fileupload.FileItemFactory接口的org.apache.commons.fileupload.DiskFileItemFactory来完成的,当上传的文件比较小时,可直接保存在内存中,这样速度比较快,当文件较大时使用临时文件缓存。代码如下

FileItemFactory factory= new DiskFileItemFactry();

ServletFileUpload upload = new ServletFileUpload(factory);   //获得ServletFileUpload 对象upload

List<FileItem> listItem = upload.parseRequest(request);           //解析request,把每个项目封装成单独的FileItem

//遍历listItem

for (FileItem item : listItem) {

    if(!item.isFormField()){//说明这个项目是个文件,上传到服务器

     String fileName = item.getName();  //这个名字文件的完整路径名

      String fileUploadName = fileName.substring(fileName

       .lastIndexOf("\\") + 1);  //获得文件的名字,不包含路径

     item.write(new File(path, fileUploadName));  //写入磁盘,path是文件的写入路径

    }else{//这个项目就是一个参数可以获取

String filed = item.getFieldName();  //获得这个参数名

           if (filed.equals("bank")) { //根据判断获得参数值,并赋给已声明的变量

                 bank = item.getString();

            }

          if (filed.equals("number")) {

                 number = item.getString();

     

           }

          if (filed.equals("account")) {

                account = item.getString();

}

}

}

这样,即上传了文件,也获取到了页面参数。

java上传组件commons-fileupload的一些使用方法的更多相关文章

  1. java上传组件FileUpload

    如果表单中有文件要上传,也就是有<input type="file" name="name"/> 就需要在form标签中添加enctype=&quo ...

  2. 文件上传组件FileUpload 以及邮箱搭建JavaMail

     文件上传与下载 1.1 文件上传 案例: 注册表单/保存商品等相关模块! --à 注册选择头像 / 商品图片 (数据库:存储图片路径 / 图片保存到服务器中指定的目录) 文件上传,要点: 前台: 1 ...

  3. Commons FileUpload文件上传组件

    Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧. 页面 <form method="POST" enct ...

  4. java深入探究10-文件上传组件FileUpload,邮件开发

    1.文件上传组件FileUpload 1)java提供了文件上传的工具包 需要引入:commons-fileupload-1.2.1.jar(文件上床组件核心包) commons-oi-1.4(封装了 ...

  5. java基础篇---文件上传(组件)

    转载自:http://www.cnblogs.com/oumyye/p/4234969.html 文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本 ...

  6. 实现文件上传功能(FileUpload组件)

    文件上传: 项目中经常用到文件上传. 自己实现文件上传,使用文件上传组件fileupload组件 1.指定表单类型为文件上传, enctype=”multipart/form-data” 2.提交方式 ...

  7. Flash上传组件之SWFUpload文件上传

    一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...

  8. Baidu WebUploader 前端文件上传组件的使用

    简介 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流I ...

  9. 从零开始编写自己的C#框架(23)——上传组件使用说明

    文章导航 1.前言 2.上传组件功能说明 3.数据库结构 4.上传配置管理 5.上传组件所使用到的类 6.上传组件调用方法 7.效果演示 8.小结 1.前言 本系列所使用的是上传组件是大神July开发 ...

随机推荐

  1. 小小知识点(五十一)——6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用

    转自IEEE科技纵览  https://weibo.com/ttarticle/p/show?id=2309404454066502631625 6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用 ...

  2. 微信生成二维码 PHP

    <?php /** * Created by PhpStorm. * User: liyiming * Date: 2019/8/8 * Time: 14:23 */ # 生成二维码 class ...

  3. 端口扫描器--利用socket协议

    #!/usr/bin/env python # -*- coding:UTF-8 -*- import optparse import socket import threading # 用法 pyt ...

  4. AVR单片机教程——ADC

    ADC 计算机的世界是0和1的.单片机可以通过读取0和1来确定按键状态,也可以输出0和1来控制LED.即使是看起来不太0和1的PWM,好像可以输出0到5V之间的电压一样,达到0和1之间的效果,但本质上 ...

  5. 【FAR 方云研发绩效】助力于解决管理难题

    方云研发绩效(farcloud.com)自发布以来,助力多家企业完成研发管理数字化转型,并有效解决产研绩效这一普遍存在的管理难题. 研发管理是许多企业面临的管理难题,首先,技术构成的信息壁垒,让内部沟 ...

  6. 应届生/社招面试最爱问的几道Java基础问题

    本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错 ...

  7. 你还不会Git?那就不要写代码了(一)

    Git应用开发学习 如果你还不会使用Git,那就不要写代码了. 一旦你会使用了Git,就再也不想使用SVN了.永远也回不去了. Mac上使用Git,肯定离不开对Mac上的操作.就要使用常用的Linux ...

  8. cogs 1829. [Tyvj 1728]普通平衡树 权值线段树

    1829. [Tyvj 1728]普通平衡树 ★★★   输入文件:phs.in   输出文件:phs.out   简单对比时间限制:1 s   内存限制:1000 MB [题目描述] 您需要写一种数 ...

  9. Oracle GoldenGate to Confluent with Kafka Connect

    Confluent is a company founded by the team that built Apache Kafka. It builds a platform around Kafk ...

  10. Qt Installer Framework翻译(7-1)

    配置文件 配置文件可自定义安装程序的用户界面和行为.该文件通常称为config.xml,位于config文件夹中. 最小配置文件由一个<Installer>根元素组成,<Name&g ...