java上传组件commons-fileupload的一些使用方法
在 http://www.apache.org,下载commons-fileupload-1.2.1.jar包,并把这个包加到工程中,以下是记录这个上传组件的一些使用方法。
html测试页面,实现上传两个文件,并填写四个参数。
- <span style="font-size:16px;"><form action="../FileServlet" enctype="multipart/form-data" method="post" ></span>
- <span style="font-size:16px;"> <dt>本人名称:</dt>
- <dd><input type="text" name="name" class="file-input" />dd>
- <dt>银行账户:</dt>
- <dd>< <input type="text" name="account" class="file-input" /></dd>
- <dt>开户银行:</dt>
- <dd>< <input type="text" name="bank" class="file-input" /><dd>
- <dt>身份证号:</dt>
- <dd> <input type="text" name="number" class="file-input" /></dd>
- <dt>身份证照片:</dt>
- <dd><input type="file" name="photo" class="file-input" /></dd>
- <dt>银行卡照片:</dt>
- <dd> <input type="file" name="card" class="file-input" /> </dd></span>
- <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的一些使用方法的更多相关文章
- java上传组件FileUpload
如果表单中有文件要上传,也就是有<input type="file" name="name"/> 就需要在form标签中添加enctype=&quo ...
- 文件上传组件FileUpload 以及邮箱搭建JavaMail
文件上传与下载 1.1 文件上传 案例: 注册表单/保存商品等相关模块! --à 注册选择头像 / 商品图片 (数据库:存储图片路径 / 图片保存到服务器中指定的目录) 文件上传,要点: 前台: 1 ...
- Commons FileUpload文件上传组件
Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧. 页面 <form method="POST" enct ...
- java深入探究10-文件上传组件FileUpload,邮件开发
1.文件上传组件FileUpload 1)java提供了文件上传的工具包 需要引入:commons-fileupload-1.2.1.jar(文件上床组件核心包) commons-oi-1.4(封装了 ...
- java基础篇---文件上传(组件)
转载自:http://www.cnblogs.com/oumyye/p/4234969.html 文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本 ...
- 实现文件上传功能(FileUpload组件)
文件上传: 项目中经常用到文件上传. 自己实现文件上传,使用文件上传组件fileupload组件 1.指定表单类型为文件上传, enctype=”multipart/form-data” 2.提交方式 ...
- Flash上传组件之SWFUpload文件上传
一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...
- Baidu WebUploader 前端文件上传组件的使用
简介 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流I ...
- 从零开始编写自己的C#框架(23)——上传组件使用说明
文章导航 1.前言 2.上传组件功能说明 3.数据库结构 4.上传配置管理 5.上传组件所使用到的类 6.上传组件调用方法 7.效果演示 8.小结 1.前言 本系列所使用的是上传组件是大神July开发 ...
随机推荐
- Pandas常用方法手册
关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas as pd 导入数据 pd.read_ ...
- Quartz 和 springboot schedule中的cron表达式关于星期(周几)的不同表示
一.Quartz中cron 表达式分析: quartz 官方源码(org.quartz.CronExpression)解释: Cron expressions are comprised of 6 r ...
- Python学到什么程度可以面试工作(解答一)
本文整理了 26 个 Python 有用的技巧,将按照首字母从 A~Z 的顺序分享其中一些内容. all 或 any 人们经常开玩笑说 Python 是“可执行的伪代码”,但是当你可以这样编写代码时, ...
- VueRouter爬坑第四篇-命名路由、编程式导航
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...
- 关于yarn安装,这里做一个备份
安装的是window版本,官网上有三种安装方式. 第一种下载一个.msi的安装包,然后当它运行时会指引你将 Yarn 安装到 Windows 上,因为点开以后页面是404,所以没有用这种方法. 第二种 ...
- 《C# 爬虫 破境之道》:概述
第一节:写作本书的目的 关于笔者 张晓亭(Mike Cheers),1982年出生,内蒙古辽阔的大草原是我的故乡. 没有高学历,没有侃侃而谈的高谈阔论,拥有的就是那一份对技术的执著,对自我价值的追求. ...
- nginx介绍与安装
1.nginx作用可以配置数十个场景 2.环境安装 环境确认 安装环境 yum -y install gcc gcc-c++ autoconf pcre-devel make automa ...
- CodeSign error: no provisioning profile at path '/Users/zhht-2015/Library/MobileDevice/Provisioning Profiles/79693141-f98b-4ac4-8bb4-476c9475f265.mobileprovision'
解决方法: 1.关闭Xcode,找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容). 2.打开后找到project.pbxproj文件,用文本 ...
- [洛谷P4707] 重返现世
Description 为了打开返回现世的大门,\(Yopilla\) 需要制作开启大门的钥匙.\(Yopilla\) 所在的迷失大陆有 \(n\) 种原料,只需要集齐任意 \(k\) 种,就可以开始 ...
- 2、pycharm安装及相关配置
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试. 语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制 ...