form表单多文件上传

1.html/jsp主页

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%String path=request.getContextPath();request.setAttribute("path", path);
%>
</head>
<body>
<form action="${path}/MultiUp"  method="post" enctype="multipart/form-data"><table><tr><td>上传文件</td><td> <input type="file" name="fileN1" /></td></tr><tr><td>上传文件</td><td> <input type="file" name="fileN2" /></td></tr><tr><td>上传文件</td><td> <input type="file" name="fileN3" /></td></tr><tr><td colspan="2"><input type="submit" /><input type="reset" /></td></tr></table></form>
</body>
</html>
duoUp.jsp


2.过滤器解决编码问题

package com.ser;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Filter01 implements Filter
{@Overridepublic void destroy(){}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException{HttpServletRequest request= (HttpServletRequest)arg0;HttpServletResponse response=(HttpServletResponse)arg1;request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html charset=utf-8");//System.out.println(">>>>>>>>>>>>");
        arg2.doFilter(request, response);}@Overridepublic void init(FilterConfig arg0) throws ServletException{}}
Filter01.java


3.多文件上传服务器处理

package multiup;import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;import org.apache.commons.collections.CollectionUtils;/*** Servlet implementation class MultiUp*/
@WebServlet("/MultiUp")
@MultipartConfig(location="e://uploadFile",fileSizeThreshold=1024*1024*10,maxFileSize=1024*1024*200,maxRequestSize=1024*1024*300)
public class MultiUp extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public MultiUp() {}@Overridepublic void init(ServletConfig config) throws ServletException{File file = new File("e://uploadFile");if(!file.exists()&&!file.isDirectory()){file.mkdir();}}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Collection<Part> parts= request.getParts();StringBuffer sb=new StringBuffer();if(!CollectionUtils.isEmpty(parts)){for(Part part:parts){String header=part.getHeader("content-disposition");String filename= header.substring(header.indexOf("filename")+10,header.lastIndexOf("\""));part.write(filename);sb=sb.append(filename).append(",");}}String str =sb.toString().substring(0,sb.toString().length()-1);response.getWriter().print(str+"上传成功!");}}
MultiUp.java

 

转载于:https://www.cnblogs.com/waarp/p/7281580.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS学习记录(BOM部分)

BOOM部分 Screen <html lang"en"> <head><meta charset"UTF-8"><title>Screen</title> </head> <body></body> <script>console.log(screen.width);console.log(screen.height);console.log(screen…

在linux上安装jdk(转载)

软件环境&#xff1a; 虚拟机&#xff1a;VMware Workstation 10 操作系统&#xff1a;Ubuntu-12.04-desktop-amd64 JAVA版本&#xff1a;jdk-7u55-linux-x64 软件下载地址&#xff1a; JDK&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html &a…

WebService大讲堂之Axis2(1):用POJO实现0配置的WebService

Axis2是一套崭新的WebService引擎&#xff0c;该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2&#xff0c;还集成了非常流行的REST WebService&#xff0c;同时还支持Spring、JSON等技术。这些都将在后面的系列教程中讲解。在本文中主要介绍了如何使用Axis2开…

Unity中UGUI之Canvas属性解读版本二

Canvas Render Modes(渲染模式) 1.在screen空间中渲染2.在world空间中渲染 Screen Space-Overlay 在这个渲染模式中&#xff0c;UI元素将在场景的上面。如果场景改变大小或改变分辨率&#xff0c;Canvas将自动改变大小去适配。 Screen Space-Camera 这和Screen Space-Overlay类…

用subline添加单引号和逗号,在sql中使用

subline Sublime编辑器批量在行首或者行尾添加字符串的方法&#xff1a; 1、选中要操作的行&#xff0c;全选就按CtrlA&#xff1b; 2、使用快捷键CtrlShiftL&#xff0c;进入待操作状态&#xff1b; 3、使用左右方向键&#xff08;←或者→&#xff09;&#xff0c;批量操作…

[独库骑行之我们路过沙漠]塔克拉玛干的边缘

塔克拉玛干的边缘 在计划这段旅行时我最憧憬的路段就是横穿塔克拉玛干的沙漠公路&#xff0c;缘于影视里的茫茫大漠上金色的胡杨林的印象。 由于时间关系&#xff0c;我们没有走那条沙漠公路。倒是从沙雅到阿拉尔之间有部分沙漠公路&#xff0c;但完全没有这种诗情画意&#xf…

Java中Set为什么不能存放重复值

set三个子类的底层其实都是Map的。我们也知道Map是key-value键值对出现的。我们也知道&#xff0c;set添加方法是set.add(“1”)。参数只有一个&#xff0c;不是键值对的&#xff0c;那么底层Map怎么存储的呢&#xff1f; TreeSet的构造方法 从源码中&#xff0c;我们可以看到&…

golang和php哪个性能更强,相同逻辑的php与golang代码效率对比,最好语言落谁家…...

业务逻辑&#xff1a;逐行读取一个3.6MB的文件&#xff0c;把每行的字符串切割成数组&#xff0c;计算二维数组中的经纬度值与目标地点的经纬度的距离&#xff0c;符合限定距离范围的结果存入map中&#xff0c;将结果覆盖写入一个新的文件&#xff0c;计算程序执行的时间。$sti…

隐藏与禁用硬盘分区——利用工具或注册表

工具 以下链接任选其一&#xff1a; https://pan.abn.cc/weiyun/down.php?uf0bff31fd54bf15131d543dc75fd5f7d.undefined.exehttps://share.weiyun.com/f0bff31fd54bf15131d543dc75fd5f7d提示&#xff1a; 设置过后&#xff0c;刷新生效&#xff1b;如需恢复&#xff0c;勾去后…

走近Flex组件系列(三):按扭组件(Button,CheckBox,LinkBar,LinkButton,PopUpButton,RadioButton,ToggleButtonBar)...

本文主要介绍Flex的Button、ButtonBar、CheckBox、LinkBar、LinkButton、PopUpButton、RadioButton、RadioButtonGroup和ToggleButtonBar组件&#xff0c;这些组件是非常基础的组件&#xff0c;如果你是学习过Flex组件的可以飘过&#xff0c;本文主要是针对Flex组件的初学者&am…

Jmeter 参数化请求实例

Jmeter 参数化请求实例 在jmeter中的请求可以参数化&#xff0c;其中参数化的方式有4种&#xff1a; 1.CSV Data Set Config 2.数据库 3.用户自定义变量 4.用jmeter中的函数获取参数值 第一种方式&#xff1a;CSV Data Set Config 1.创建一个data.txt文件&#xff0c;内容如下…

winform Tab键循序 小发现

在Winform 的应用程序中,我们通常需要设置Tab的键的循序,当我们使用用户控件的时候,我们在界面会发现很难设置. 将我的小发现告诉大家吧,当需要设置用户控件的Tab键的时候,我们首先把那些不用tab键获取的控件的TabStop属性设置为False; 例如: 我们不需要获取焦点的GroupBox gbK…

php配合jade使用,前端自动化系列(四)之jade预编译html

刚开始写这篇文章的时候&#xff1b;其实我是拒绝的&#xff1b;因为在 前端自动化系列(二)之less、scss、sass、stylus css预处理器 中&#xff1b;我已经表明了我的态度&#xff1b;我是不喜欢那种靠缩进来体现等级层次感的语法&#xff1b;但是考虑到css、js都有了现代化的写…

深入理解OkHttp源码(二)——获取响应

首先先看一张流程图&#xff0c;该图是从拆轮子系列&#xff1a;拆 OkHttp 中盗来的&#xff0c;如下&#xff1a; 在上一篇博客深入理解OkHttp源码&#xff08;一)——提交请求中介绍到了getResponseWithInterceptorChain()方法&#xff0c;本篇主要从这儿继续往下讲解。 get…

成功解决Error running ‘Application‘: command line is too long

解决方法&#xff08;推荐&#xff09;&#xff1a;idea点击 Run -> Edit Configurations 下拉选择JAR manifest 开始是没有这个选项的&#xff0c;点击Modify options 点击shorten command line 选择JAR manifest