commons fileupload 相关的代码

2025最新正版Autodesk 3ds Max 2022安装教程:从下载到中文环境配置全流程解析 Autodesk 3ds Max 2022是一款专业的三维建模、动画和渲染软件,广泛应用于影视制作、游戏开发、建筑可视化等领域。 阅读详情

〔转〕commons-fileupload组件实现多文件上传

这几天在网上看看,关于commons-fileupload组件的使用介绍太乱了,把他们的代码用用,编译起来错误态度,所以我今天把jsp+commons-fileupload多文件上传搞定了,整理出来,供大家分享,学习。前些天做好了JSP+Smart-upload多文件上传,查了些网上的资料,说是Smart-upload文件上传在传输大文件的时候,浏览器会崩溃,故转向Commons-FileUpload,在查阅资料,又在自己电脑上配置后成功,下面具体说说:

在开始之前你要准备以下几个东西:
1. commons-FileUpload 1.2 
包 
下载地址:http://jakarta.apache.org/commons/fileupload/
2. commons-IO 1.3.1 
包 
下载地址:http://jakarta.apache.org/commons/io/
3. Commons-BeanUtils 1.7 
包 
下载地址:http://jakarta.apache.org/commons/beanutils/

在你的webapp目录下,有一个文件名称是:upload.html,三个文件夹名称是:ImagesUploaded,ImagesUploadTemp,WEB-INF.

在你的webapp目录下,WEN-INF下,lib目录下有如下jar文件:

commons-beanutils.jar, commons-beanutils-bean-collections.jar, commons-beanutils-core.jar, commons-fileupload-1.2.jar, commons-io-1.3.2.jar.

在你的webapp目录下,WEN-INF下,classes目录下有如下java文件:FileUploadServlet.java。

编译成class文件。下面有详细代码。

把下载来的上面三个压缩文件下的java文件,拷贝到classes文件下,构成org包,其中org下目录如下:org→apache →commons→下有四个文件夹:beanutils,collections,fileupload,io.

代码清单:

upload.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

 

<html>

       <head>

       <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

              <title>Untitled</title>

       </head>

 

       <body>

              <form action="FileUploadServlet" method="post" enctype="multipart/form-data">

                     <input type="file" size="30" name="test1" /><br />

            <input type="file" size="30" name="test2" /><br />

                     <br />

                     <input name="up" type="submit" value="上传" />

              </form>

       </body>

</html>

FileUploadServlet.java

import java.io.File;

import java.io.IOException;

import java.io.PrintWriter;

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.FileUploadBase.SizeLimitExceededException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

 

public class FileUploadServlet extends HttpServlet {

 

 public FileUploadServlet() {

  super();

 }

 

 public void destroy() {

  super.destroy(); // Just puts "destroy" string in log

  // Put your code here

 }

 

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  doPost(request, response);

 }

 

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 

  final long MAX_SIZE = 10 * 1024 * 1024;// 设置上传文件最大为 10M

 

  // 允许上传的文件格式的列表

  final String[] allowedExt = new String[] { "jpg", "JPG","jpeg","JPEG", "gif", "GIF","txt","TXT","doc","DOC", "docx","DOCX", "mp3","MP3", "wma","WMA", "m4a","M4A","zip","ZIP","rar","RAR" };

  response.setContentType("text/html");

 

  // 设置字符编码为UTF-8, 这样支持汉字显示

  response.setCharacterEncoding("UTF-8");

 

  // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload

  DiskFileItemFactory dfif = new DiskFileItemFactory();

  dfif.setSizeThreshold(16384);// 设置上传文件时用于临时存放文件的内存大小,这里是16K.多于的部分将临时存在硬盘

  dfif.setRepository(new File(request.getRealPath("/") + "ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录

 

  // 用以上工厂实例化上传组件

  ServletFileUpload sfu = new ServletFileUpload(dfif);

  // 设置最大上传尺寸

  sfu.setSizeMax(MAX_SIZE);

 

  PrintWriter out = response.getWriter();

  // 从request得到所有上传域的列表

  List fileList = null;

  try {

   fileList = sfu.parseRequest(request);

  } catch (FileUploadException e) {// 处理文件尺寸过大异常

   if (e instanceof SizeLimitExceededException) {

    out.println("文件尺寸超过规定大小:" + MAX_SIZE + "字节<p />");

    out.println("<a href=/"upload.html/" target=/"_top/">返回</a>");

    return;

   }

   e.printStackTrace();

  }

  // 没有文件上传

  if (fileList == null || fileList.size() == 0) {

   out.println("请选择上传文件<p />");

   out.println("<a href=/"upload.html/" target=/"_top/">返回</a>");

   return;

  }

  // 得到所有上传的文件

  Iterator fileItr = fileList.iterator();

  // 循环处理所有文件

  while (fileItr.hasNext()) {

   FileItem fileItem = null;

   String path = null;

   long size = 0;

   // 得到当前文件

   fileItem = (FileItem) fileItr.next();

   // 忽略简单form字段而不是上传域的文件域(<input type="text" />等)

   if (fileItem == null || fileItem.isFormField()) {

    continue;

   }

   // 得到文件的完整路径

   path = fileItem.getName();

   // 得到文件的大小

   size = fileItem.getSize();

   if ("".equals(path) || size == 0) {

    out.println("请选择上传文件<p />");

    out.println("<a href=/"upload.html/" target=/"_top/">返回</a>");

    return;

   }

 

   // 得到去除路径的文件名

   String t_name = path.substring(path.lastIndexOf("//") + 1);

   // 得到文件的扩展名(无扩展名时将得到全名)

   String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);

   // 拒绝接受规定文件格式之外的文件类型

   int allowFlag = 0;

   int allowedExtCount = allowedExt.length;

   for (; allowFlag < allowedExtCount; allowFlag++) {

    if (allowedExt[allowFlag].equals(t_ext))

     break;

   }

   if (allowFlag == allowedExtCount) {

    out.println("请上传以下类型的文件<p />");

    for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)

     out.println("*." + allowedExt[allowFlag]

       + "&nbsp;&nbsp;&nbsp;");

    out.println("<p /><a href=/"upload.html/" target=/"_top/">返回</a>");

    return;

   }

 

   long now = System.currentTimeMillis();

   // 根据系统时间生成上传后保存的文件名

   String prefix = String.valueOf(now);

   // 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下

   String u_name = request.getRealPath("/") + "ImagesUploaded/" + prefix + "." + t_ext;

   try {

    // 保存文件

    fileItem.write(new File(u_name));

    out.println("文件上传成功. 已保存为: " + prefix + "." + t_ext + " &nbsp;&nbsp;文件大小: " + size + "字节<p />");

    out.println("<a href=/"upload.html/" target=/"_top/">继续上传</a>");

   } catch (Exception e) {

    e.printStackTrace();

   }

 }

 

 }

 

 public void init() throws ServletException {

  // Put your code here

 }

 

}

在浏览器里输入:http://localhost:8080/你的webapp/upload.html.就可以看到文件上传的页面了。

祝你好运。

涨姿势|小众建模软件Make human,MakeClothes插件使用详解教程(2) 衣服可以从头开始建模,或者通过改变人体网格或由MakeClothes工具提供的“服装助手”(见下文)来建模。在设计和建模一件衣物时,应该记住两个限制。首先,将服装网格映射到人体网格的算法要求服装网格完全由四面体组成。其次,知道MakeClothes每件衣服只支持一种材料是很重要的。 完成MakeClothes工作流程后,您的HOME / makehuman / v1 / data / clothes中的工具将创建一个新文件夹。该文件夹将采用用户为服装项目提供的唯一名称。该文件夹将填充必要的资源,以使该项目在 阅读详情

相关推荐

保姆级教程:从Navicat 11/12到15,平滑升级搞定MySQL 8.0的caching_sha2_password认证

本文提供从Navicat 11/12升级到15的保姆级教程,重点解决MySQL 8.0的caching_sha2_password认证问题。详细介绍了备份配置、新版本功能亮点、跨平台安装步骤、配置迁移流程以及高级使用技巧,帮助用户平滑过渡到Navicat 15,提升数据库管理效率。

weixin_33724046的博客 203

上传文件之 common-fileupload(3)

转自:http://blog.youkuaiyun.com/yerenyuan_pku/article/details/52540661#t3 由于文件上传需要注意的细节太多了,一篇文章全部容纳这些细节,真是太长了,索性再写一篇文章,处理文件上传需要注意的细节如何判断空的上传输入项在处理完文件上传需要注意的第6个细节后,测试时,如果

iron李的博客 540

RK3568 NFS rootfs配置与调试实战指南(已验证)

本文提供了在RK3568开发板上配置NFS rootfs的完整实战指南。通过详细步骤讲解如何配置uboot的bootargs参数、编译支持NFS的内核,并在PC端搭建TFTP与NFS服务器,最终实现从网络挂载根文件系统,从而极大提升驱动调试和应用程序开发的迭代效率。

weixin_29175469的博客 282

spring对commons_fileupload和cos_fileuplaod的封装

spring对commons_fileupload和cos_fileuplaod的封装类图如下所示:实例://获得contextjavax.servlet.ServletContext servletContext=getServletContext();//获得resolverMultipartResolver cmr= new CommonsMultipartResolver(servletC

huabingl的专栏 1499

模型算力需求估算

(Billion Parameters,简称B)和训练/推理的计算任务复杂度,结合硬件计算能力(例如每秒浮点运算次数,FLOPS)来估算。以下是详细的方法和公式说明,以及实际的计算示例。算力需求的估算依赖于参数量、模型架构及硬件性能,结合训练/推理场景的特定要求来计算。通过上述公式和示例,我们可以定量分析不同任务的算力需求,并合理配置硬件资源以优化运行效率。结论:推理任务相对较轻,单台H100可以在30秒内完成此任务。推理算力需求一般远低于训练,因为只需要执行前向传播。,可以将训练时间缩短到约。

形上得其象,形下合于数;阴阳自济,玄理自明。 8955

ESP8266-Arduino编程实例-TEA5767收音机模块驱动

TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76—108MHZ自动数字调谐。 该收音机完全无需调整,高灵敏度,高稳定性,低噪音,收音模块。只需要最少的小型低成本外部组件。 收音机可以调到欧洲、美国和日本的 FM 波段。...

视觉与物联智能 1981

FileUpload实现多文件上传与下载

FileUpload实现文件上传与下载简介1. FileUpload2. 准备工作代码1. 文件上传(UploadFile.java)2. 文件上传 (upload_file.jsp)3. 获取文件名列表 (ListFile.java)4. 文件下载 (DownloadFile.java)5. 文件下载 (download_file.jsp)结果演示1. 文件上传2. 文件下载 简介 1. FileUpload   FileUpload 是 Apache commons下面的一个子项目,用来实现Java环境

1183

AI 视觉宠物喂食器:智能识别 + 精准投喂,打造宠物喂养新体验

AI 视觉宠物喂食器将边缘 AI 计算与传统硬件结合,既解决了传统喂食器的核心痛点,又兼顾了 DIY 的易用性和扩展性。无论是宠物主人 DIY 使用,还是小型创客团队产品化,该方案都具备较高的实用价值和落地性,为宠物智能化喂养提供了轻量化的实现路径。

weixin_42300449的博客 419

javaWeb Response下载和上传文件

下载文件 public class FileServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.获取下载文件的路径下载文件的路径:D:\soft\apache-tomcat-9.0.41\webapps\ROOT\ti.

weixin_41238665的博客 348

自动权重化图卷积网络(Auto-Weighted GCN)算法在反洗钱识别中的应用及代码实现

该算法通过自动学习节点之间的权重信息,能够更好地捕捉AML数据中的关系和结构,从而提高反洗钱识别的准确性和效果。传统的AML识别方法通常依赖于专家定义的规则和手动提取的特征,但这些方法在应对大规模和复杂的数据时存在一定的局限性。GCN通过在图上执行卷积操作来捕捉节点之间的关系和结构信息,从而实现对图数据的学习和表示。自动权重化图卷积网络是一种基于GCN的改进算法,能够自动学习节点之间的权重信息,从而更好地捕捉图中的关系。利用自动计算的权重值执行图卷积操作。根据节点之间的相似度,计算每个节点的权重。

syntax_api860的博客 376

RTK_ROS_导航(1): GNSS里程计

1. RTK 配置 4G CORS + 4G 网络 + 户外有信号,不能实现RTK,就恢复出厂设置 输出信息包含(一般需要三个同时打开): GAPPA:包含位置信息 GPVTG:包含速度信息 GPHDT:包含定向的朝向信息 2. ROS驱动 驱动安装sudo apt install ros-noetic-nmea-navsat-driver 运行,需要修改该功能包的启动端口,会自动解析上面的3个RTK语句信息roslaunch nmea_navsat_driver nmea_serial_d

旋风小短腿 4265

java 中传输文件的代码_java文件上传Demo(必看篇)

说到文件上传我们要做到:1.引入两个包:commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar2.将form改为上传文件模式:enctype="multipart/form-data"3.开始编写相关代码这里会用到几个关键的类:磁盘文件工厂DiskFileItemFactory ; 创建servlet文件上传类:ServletFileUpload还有几个...

weixin_30937427的博客 116

Unity-Mirror网络框架-从入门到精通之MultipleMatches示例

Multiple Matches 示例主要讲述了如何在使用 Mirror 网路框架时管理多个游戏匹配。以及如何设置一个能够同时支持多个游戏会话的系统,使玩家能够加入他们所选择的比赛,而不是强制他们加入一个单一的匹配。

TxNet 965

关于uploadfile的版本问题

对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的。 一般选择采用apache的开源工具common-fileupload这个文件上传组件。 common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。 common-fileupload一般使用commons-fileupload-1.4.jar,但存在一个问题就是 isMultipartContent(HttpServletRequest request) 中的request对象使用的是Java

zhoulv163的博客 2034

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java http 上传大文件上传_java实现大文件的上传

最近项目经理逼着让偶做树的展开,表嵌套表,可惜偶刚参加工作,水平低,这不在查资料嘛,可是不多久就传来了经理的叫嚣声,这么简单的东西,都一天了,你还没做完..................,哎真是郁闷,谁让咱水平低呢(心想,什么时候等我水平提高了,看我怎么收拾你,又一想,等我水平提高了,人家早不知道干什么去了,废话不多说了)文件上传一直是B/S结构中很重要的一项功能,在java中并没有很好的实现文...

weixin_42137022的博客 684

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java fileupload 进度_简单实用Java上传文件进度条的实现方法

东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以实现实时更新已上传文件的大小,有了这个还说什么呢?这里给出代码:package lc.progress;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import...

weixin_39950470的博客 439

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上传csv格式文件,利用commons-fileupload

1、添加jar包依赖          commons-fileupload          commons-fileupload          1.3.3       2、配置bean               p:defaultEncoding="UTF-8" p:maxUploadSize="104857600">    

xiaosongwahaha的博客 3093

servlet 读取表单的输入数据、文件上传

表单submit分通常为get和post两种方式。 > get:通过request.getParameter("参数名")可以取得输入框的输入数据 > post:可实现输入框数据读取,文件上传 ①利用下述软件包,放置在/WEB-INF/lib目录下。 commons-fileupload-版本号.jar:http://commons.apache.org/fileupload/下载 commons-io-版本号.jar:http://common...

u010156872的博客 797

springMVC上传

1.jar导入 commons-fileupload-1.1.1.jar commons-io-1.3.2.jar 2.配置spring-mvc-context.xml <!-- 文件上传大小设定 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> &l...

qq_34295227的博客 184

java 上传下载demo_java文件上传Demo(必看篇)

说到文件上传我们要做到:1.引入两个包:commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar2.将form改为上传文件模式:enctype="multipart/form-data"3.开始编写相关代码这里会用到几个关键的类:磁盘文件工厂DiskFileItemFactory ; 创建servlet文件上传类:ServletFileUpload还有几个...

weixin_36053926的博客 266

经过百般努力,终于用JSP写出FileUpload上传小程序

Reference: http://www.cnblogs.com/xnxqs/archive/2005/07/13/191927.html经过百般努力,终于可以写出一个自己的上传小程序了,其中以上面的url为标准写的,不过这个程序和新版本的commons-fileupload-1.0,存在不一样的地方,就是: 新的是: void write(java.io.File...

weixin_30795127的博客 83

用angularjs进行文件上传

文件上传页面三要素: 1、 form表单提交方式一定是post 2、 form表单的enctype一定是multipart/form-data 3、 form表单中一定要有一个input的type是 file 文件上传一定要有的jar Commons-io和commons-fileupload Springmvc文件上传: 1、 springmvc.xm...

weixin_30298497的博客 376

100个java经典例子_100个简单的java 程序小例子 - 下载 - 搜珍网

100 Demo/100 Demo/100个Java经典编程实例源代码/100 Demo/100个Java经典编程实例源代码/java使用编程100例(二)例57-100/100 Demo/100个Java经典编程实例源代码/java使用编程100例(二)例57-100/main_from.gif100 Demo/100个Java经典编程实例源代码/java使用编程100例(二)例57-100/使...

weixin_35868872的博客 761

ajax上传 java,javaWeb上传代码(普通上传和ajax后台上传)

【实例简介】使用Apache 的 Commons FileUpload 实现上传功能。代码中包含两种上传方式,普通上传和jquery后台上传。【实例截图】【核心代码】7518107c-984e-4c04-a5a4-2d38c5456c1c└── uploadDemo├── src│ └── com│ └── upload│ ├── JqueryFileUploa...

weixin_33773734的博客 141

SpringMVC上传文件

一、CommonsMultipartResolver 在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的。但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明。这样之后,客户端每次进行...

askilledhand的专栏 195

java文件上传组件

参考文章:http://blog.ncmem.com/wordpress/2023/09/11/java%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e7%bb%84%e4%bb%b6/三个值:application/x-www-form-urlencoded,multipart/form-data,text/plain。// 对中文文件编码处理。三个值区别:application/x-www-form-urlencoded  模式方式。// 2. 文件上传核心工具类。

weixin_45525177的博客 335
上一篇: 从jsp向servlet传值
下一篇: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling
onion____
博客等级 码龄17年 86粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值