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. ...
随机推荐
- 高级工具gprof、gprof2dot.py、dot
可以研究程序性能.函数调用堆栈等,而且能用图标查看. linux环境下 C++性能测试工具 gprof + kprof + gprof2dot - 阁子 - 博客园 gprof.gprof2dot.p ...
- 安装使用RESTful 框架SLIM方法
相关框架: http://www.golaravel.com 是一个PHP框架,内置名为LUMEN的RESTful API框架,有中文文档, http://lumen.golaravel.com/do ...
- Shell 字符串比较
转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...
- acdream Divide Sum
Divide Sum Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) SubmitSta ...
- 【Linux】方便的SecureCRT文件上传、下载命令
使用SecureCRT连接服务器,可用命令上传.下载文件,非常方便. > 安装 如果系统报找不到以下命令,那么你可能没有安装软件.安装以下吧. [root@localhost ~]# yum - ...
- C语言第3天标准的输入输出函数
:first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { border: 0; m ...
- VC++ 监控指定目录改变
转载:http://www.cnblogs.com/doublesnke/archive/2011/08/16/2141374.html VC++实施文件监控:实例和详解 相关帮助: http://h ...
- zh-cn en-uk、zh-tw表示语言(文化)代码与国家地区对照表(最全的各国地区对照表)
af 公用荷兰语 af-ZA 公用荷兰语 - 南非 sq 阿尔巴尼亚 sq-AL 阿尔巴尼亚 -阿尔巴尼亚 ar 阿拉伯语 ar-DZ 阿拉伯语 -阿尔及利亚 ar-BH 阿拉伯语 -巴林 ar-EG ...
- ruby学习总结03
1.方法的调用 对象.方法名(参数1,参数2,...) 可以省略参数列表的() 对象.方法名(参数1,...) do |变量1,变量2,...| 可以省略参数的() 块内 ...
- Cheatsheet: 2014 10.01 ~ 10.30
.NET ASP.NET Web Api: Unwrapping HTTP Error Results and Model State Dictionaries Client-Side HTTP 20 ...