今天,我来介绍一个Apache FileUpload这个插件的使用。

  首先,到官网下载相关jar包点击这里下载,这里提供是v1.2.

  1.在项目中导入相关jar包commons-fileupload-1.2.2.jar 、commons-io-2.0.1.jar这两个包;

  2.建立如下a.jsp(这里只提供核心代码)

         <form name="form1" action="${ctx}/ware/WaretServlet?action=modify_ware" method="post" class="niceform" enctype="multipart/form-data">
<input type="hidden" name="WareID" value="${ware.wareID}"/>
<fieldset>
<dl>
<dt><label for="email">商品名称:</label></dt>
<dd><input type="text" name="WareName" value="${ware.wareName}" id="" size="54" /></dd>
</dl>
<dl>
<dt><label for="upload">上传图片:</label></dt>
<dd><input type="file" name="PicUrl" id="upload" value="${ware.picUrl}"/></dd>
</dl>
<dl class="submit">
<input type="submit" name="submit" id="submit" value="修改" />
<input type="reset" name="submit" id="submit" value="重填" />
</dl> </fieldset> </form>

3.建立如下servlet WareServlet

     private void modify_ware(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory f = new DiskFileItemFactory();//磁盘对象
f.setRepository(new File("d:/a"));//设置临时目录
f.setSizeThreshold(1024*8);//8k的缓冲区,文件大于8K则保存到临时目录
ServletFileUpload upload = new ServletFileUpload(f);//声明解析request的对象
upload.setHeaderEncoding("utf-8");//处理中文
upload.setSizeMax(1024*1024*10);//设置单个文件最大为10M
upload.setSizeMax(1024*1024*20);//最多能上传20M
String path = getServletContext().getRealPath("/imgs");//获取文件要保存的目录
try
{
List<String> paramli = new ArrayList<String>();
@SuppressWarnings("unchecked")
List<FileItem> list = upload.parseRequest(request);// 解析
for (FileItem ff : list)
{
if (ff.isFormField())
{
String ds = ff.getString("UTF-8");//处理中文
//System.err.println("说明是:" + ds);
paramli.add(ds);
}
else
{
String ss = ff.getName();
System.out.println(ss);
paramli.add(ss);
//request.setAttribute("filename",ss);
ss = ss.substring(ss.lastIndexOf("\\") + 1);//解析文件名
////直接使用commons.io.FileUtils
FileUtils.copyInputStreamToFile(ff.getInputStream(),new File(path + "/" + ss));
}
}
for(String s:paramli)
{
System.out.print(s+" ");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

  到这里就ok了。这里的代码由于删减可能有小问题,稍微调试一下就可以了

Apache FileUpload实现文件上传的更多相关文章

  1. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

  2. 使用fileupload实现文件上传

    一. fileupload组件工作原理 先来张图片, 帮助大家理解 fileupload核心API 1. DiskFileItemFactory构造器1) DiskFileItemFactory() ...

  3. Apache Commons fileUpload实现文件上传之一

      需要两个jar包: commons-fileupload.jar Commons IO的jar包(本文使用commons-io-2.4.jar) 利用Servlet来实现文件上传. package ...

  4. Apache Commons FileUpload 实现文件上传

    Commons FileUpload简介 Apache Commons是一个专注于可重用Java组件开发的 Apache 项目.Apache Commons项目由三个部分组成: 1.Commons P ...

  5. Spring MVC使用commons fileupload实现文件上传功能

    通过Maven建立Spring MVC项目,引入了Spring相关jar依赖. 1.为了使用commons fileupload组件,需要在pom.xml中添加依赖: <properties&g ...

  6. (八)利用apache组件进行文件上传下载

    一.文件上传 文件上传,即服务器端得到并处理用户上传的文件,这个文件存放在request里,也就是需要对request进行处理. 1.1 编写html文件 <!DOCTYPE html> ...

  7. asp.net web常用控件FileUpload(文件上传控件)

    FileUpload控件的主要中能:向指定目录上传文件,该控件包括一个文本框和一个浏览按钮. 常用的属性:FileBytes,FileContent.FileName.HasFile.PostedFi ...

  8. zk FileUpload(文件上传)

    <button label="上传 Image" upload="true,maxsize=1073741824"> <attribute n ...

  9. extjs采用fileupload进行文件上传后台实现

    前台js: form: Ext.define("GS.base.BasicImportForm",{    extend:"Ext.form.Panel",   ...

随机推荐

  1. OpenJudge 2739 计算对数

    1.链接地址: http://bailian.openjudge.cn/practice/2739/ 2.题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 给定两个正整数a和b.可 ...

  2. OpenJudge 2738 浮点数加法

    1.链接地址: http://bailian.openjudge.cn/practice/2738 2.题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 求2个浮点数相加的和 题目 ...

  3. 基于Jquery的banner轮播插件,简单粗暴

    新手练习封装插件,觉着在前端这一块的轮播比较多,各种旋转木马一类的3D旋转,技术不够,所以封装了一个简单的banner轮播插件,功能也比较简单,就是左右向的轮播. 先挂地址https://github ...

  4. win7win8远程桌面提示凭证不工作问题

    今天在远程桌面win7的服务器时,突然发现win8.1系统总是无法连接成功,提示“你的凭证不工作”,但可以连接windows server 2008的服务器,找了其他人用win7的连接也是出现这个问题 ...

  5. Sersync实时同步企业应用配置实战

    一.实验环境 CentOS版本: 6.6(2.6.32.-504.el6.x86_64) Rsync版本:  Rsync-3.0.6(系统自带) Sersync版本:sersync2.5.4_64bi ...

  6. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

  7. 使用pdb调试python

    python pdb调试 python -m pdb myscript.py #注意这会重启myscript.py,这样启动的话,代码每一行都是一个节点 也可以在程序中这么设置断点: import p ...

  8. __sync_fetch_and_add

    最近在公司离职的前辈写的代码哪里看到了__sync_fetch_and_add这个东东.比较好奇.找些资料学习学习 http://www.lxway.com/4091061956.htm http:/ ...

  9. CODEVS 1004四子连棋

    [题目描述 Description] 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑 ...

  10. EL四大作用域 9个jsp对象有效范围 及 对应的类

    java中request,session,application的作用范围 page,request,session,application四者的作用范围: page的作用范围是当前页面:对应El表达 ...