servlet文件上传
1.获取文件上传路径
String path=request.getServletContext.getRePath("/WEB-INF/resources");
2.获得工厂
3.通过servletFileUpLoad 解析返回一个List<FileItem>集合
4.进行遍历 根据isFiled 判断是普通文本,然后进行遍历,
5.获得文件输入流,和输入流
6.文件上传成功
代码
package jquery; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet("/upload")
public class UploadServlet extends HttpServlet{ @Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得上传路径
String savePath=this.getServletContext().getRealPath("/resources"); File file=new File(savePath);
if(!file.isDirectory()&&!file.exists()){
file.mkdir();
} //文件上传 //创建工厂
DiskFileItemFactory factory=new DiskFileItemFactory(); //创建解析器
ServletFileUpload upload=new ServletFileUpload(factory); //解决上传文件乱码问题
upload.setHeaderEncoding("UTF-8"); //判断提交过来的是不是表单数据
if(!upload.isMultipartContent(request)){
return;
} //使用servletFileUpLoad 将解析结果返回List<FileItem> 结合中FileItem对应表单输入项 try {
List<FileItem> item=upload.parseRequest(request);
for (FileItem fileItem : item) {
String message="";
//如果不是file类型
if(fileItem.isFormField()){
System.out.println(fileItem.getString());
}else{
//是上传文件
//得到上传文件名
String filename=fileItem.getName();
System.out.println(filename);
if(filename==null||fileItem.equals("")){
continue;
}
System.out.println(filename);
//获得item 文件输入流
InputStream in=fileItem.getInputStream();
//创建文件输出流
OutputStream out=new FileOutputStream(savePath+"\\"+filename);
System.out.println(savePath+"\\"+filename);
//创建缓冲区
byte[] buffer=new byte[1024];
int len=0;
while((len=in.read(buffer))!=-1){
out.write(buffer, 0, len);
}
in.close();
out.close();
fileItem.delete();
System.out.println("上传成功");
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} }
}
uploadServlet
<%@ 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>
<script type="text/javascript"
src="${pageContext.request.contextPath }/js/jquery-1.9.1.min.js"></script>
</head>
<body> <form action="${pageContext.request.contextPath }/upload" method="post"
enctype="multipart/form-data" method="post">
上传用户名:<input type="text" name="username" /><br /> <input id="file1"
type="file" name="file1" /><img src="c/fakepath/1.jpg"> <input
type="file" name="file2" /> <input type="submit" value="上传" />
</form>
</body>
<script type="text/javascript">
</script>
</html>
html
servlet文件上传的更多相关文章
- ServletFileUpload(Servlet文件上传)
//**文件上传** form表单提交必须指定Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型"multipart/form-data" //1.创建磁盘文件项目工 ...
- Servlet文件上传下载
今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- Servlet文件上传(ServletFIleUpload,DiskFileItemFactory,FileItem)
1:我们学的是表单文件上传,就是在一个FORM中提交相应的信息,和之前我们的提交的注册信息之类的表单是不同的,所以要先改变一下FORM的属性,enctype="multipart/form- ...
- servlet文件上传2——复合表单提交(数据获取和文件上传)
上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...
- servlet文件上传及下载
servlet3.0中提供了对文件上传的直接支持,不需要借助任何第三方上传组件,直接使用Servlet3.0提供的API就能够实现文件上传功能. servlet 代码: package ni.jun. ...
- Servlet 文件上传
Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码 ...
- jsp Servlet 文件上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Servlet文件上传和下载的复习
上传 使用Servlet完成上传和下载相较于使用Struts框架有点麻烦,毕竟更偏底层了 项目中主要使用的jar包: commons-io-2.2.jar commons-fileupload-1. ...
随机推荐
- 3、JavaScript
1. JavaScript简介 1.1. JavaScript由来 Netscape 发明了 JavaScript JavaScript由Netscape 在1995年发明.早期的主要目的是处理 ...
- HDU 3076:ssworld VS DDD(概率DP)
http://acm.split.hdu.edu.cn/showproblem.php?pid=3076 ssworld VS DDD Problem Description One day, s ...
- HDU 4405:Aeroplane chess(概率DP入门)
http://acm.split.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Problem Description Hzz loves ...
- Prime Path 分类: 搜索 POJ 2015-08-09 16:21 4人阅读 评论(0) 收藏
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14091 Accepted: 7959 Descripti ...
- 实现multbandblend
一.首先实现 laplacian金字塔的分割和重构 #include "stdafx.h" #include <iostream> #include <vecto ...
- 用WebDriver实现基于jira过滤器视图的统计自动化
在Jira上通过过滤器我们可以做出多种视图,以方便统计我们想要收集的结果.比如:我想查看所有分派给我的任务.在Jira上,我保存了一个过滤器,叫做“分派给我的所有任务”.这个过滤器可以过滤出所有分配给 ...
- jar文件签名
1.生成密钥: keytool -genkey -keystore key.keystore -alias key -validity 3650 将在当前目录下生成一个key.keystore文件, ...
- 正确修改MySQL最大连接数的三种好用方案
以下的文章主要介绍的是正确修改MySQL最大连接数的三种好用方案,我们大家都知道MySQL数据库在安装完之后,默认的MySQL数据库,其最大连接数为100,一般流量稍微大一点的论坛或网站这个连接数是远 ...
- map reduce filter
三个函数比较类似,都是应用于序列的内置函数.常见的序列包括list.tuple.str. 1.map函数 map函数会根据提供的函数对指定序列做映射. map函数的定义: map(function ...
- 配置 ASP.NET Linux( CentOS 6.5 ) 运行环境 MONO + Jexus
1.更新系统 在命令行下执行 yum –y update 2.安装必要的软件 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettex ...