今天,我来介绍一个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. CLR has been unable to transition from COM context for 60 seconds

    Original link: http://blog.wpfwonderland.com/2007/08/16/clr-has-been-unable-to-transition-from-com-c ...

  2. [翻译][MVC 5 + EF 6] 8:更新相关数据

    原文:Updating Related Data with the Entity Framework in an ASP.NET MVC Application 1.定制Course的Create和E ...

  3. 安卓热更新之Nuwa实现步骤

    安卓热更新之Nuwa实现步骤 最近热更新热修复的功能在安卓应用上越发火热,终于我的产品也提出了相应的需求. 经过两天的研究,搞定了这个功能,在这里还要多谢大神们的博客,大神们的原理分析很到位,不过对于 ...

  4. Java Web开发之Servlet、JSP基础

    有好多年不搞Java Web开发了,这几天正好国庆放假,放松之余也有兴趣回头看看Java Web开发技术的基础. 我们都知道,Servlet是Java Web开发的重要基础,但是由于Servlet开发 ...

  5. 用VirtualBox构建MySQL测试环境笔记

    网络环境: 宿主机:Win7 VirtualBox 4.1.4 + Ubuntu 11.10 server 64bit 宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Athe ...

  6. Centos 6.4 /usr/src/kernels 目录为空解决方法

    /usr/src/kernels 目录下是Linux的内核源码,如果其为空,则需要安装安装 kernel-headers 和 kernel-devel包

  7. svg学习笔记(一)

    SVG——可扩展适量图形,基于XML PC端:IE9+   wap端:表现良好,适合使用 基础图形: line(线段)  <line x1="25" y1="150 ...

  8. MySQL的EXPLAIN命令详解(转)

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: expla ...

  9. PHPFarm - How to run multiple versions of PHP on the same computer

    How to Run Multiple Versions of PHP on One Server 转载:http://www.sitepoint.com/run-multiple-versions- ...

  10. DELPHI关于文件的操作

    caption:= ExtractFileExt(‘带路径,带扩展名的文件名’);//返回的就是扩展名 caption:=  ChangeFileExt(ExtractFileName(‘带路径,带扩 ...