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文件上传的更多相关文章

  1. ServletFileUpload(Servlet文件上传)

    //**文件上传** form表单提交必须指定Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型"multipart/form-data" //1.创建磁盘文件项目工 ...

  2. Servlet文件上传下载

    今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...

  3. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  4. Servlet文件上传(ServletFIleUpload,DiskFileItemFactory,FileItem)

    1:我们学的是表单文件上传,就是在一个FORM中提交相应的信息,和之前我们的提交的注册信息之类的表单是不同的,所以要先改变一下FORM的属性,enctype="multipart/form- ...

  5. servlet文件上传2——复合表单提交(数据获取和文件上传)

    上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...

  6. servlet文件上传及下载

    servlet3.0中提供了对文件上传的直接支持,不需要借助任何第三方上传组件,直接使用Servlet3.0提供的API就能够实现文件上传功能. servlet 代码: package ni.jun. ...

  7. Servlet 文件上传

    Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码 ...

  8. jsp Servlet 文件上传

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  9. Servlet文件上传和下载的复习

    上传 使用Servlet完成上传和下载相较于使用Struts框架有点麻烦,毕竟更偏底层了 项目中主要使用的jar包: commons-io-2.2.jar  commons-fileupload-1. ...

随机推荐

  1. 凯撒加密解密(java字母移位)

    1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a—w之间通过加3之后再转化为字符型输出,x—z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...

  2. Mybatis用法小结

    select 1.基本用法 <select id="selectTableOne" resultType="com.test.entity.tableOne&quo ...

  3. Communication System(dp)

    Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25006 Accepted: 8925 ...

  4. Java学习之路(六)

    1:包及和访问权限 将类放置到一个包当中,需要使用package “包名” 编译时需要使用 -d 参数  该参数的作用是依照包名生成相应的文件夹 一个类的全民应该是  “包名” + “.” + “类名 ...

  5. 分组排序SQL

    SELECT * FROM (SELECT columns,ROWNUM AS RN FROM (SELECT DISTINCT columns FROM table WHERE 1=1)) T WH ...

  6. U3D UGUI学习3 - RectTransform

    总的来说整合了NGUI很多零散功能,比如NGUI2.X处理拉伸要额外套脚本,NGUI3.X开始引入新的锚点.再加上依赖BoxCollider使得整个HUD显示非常乱 而UGUI很清晰明了,你也能看清楚 ...

  7. python终端颜色设置

    1.颜色定义说明 格式:\033[显示方式;前景色;背景色m   前景色 背景色 颜色 --------------------------------------- 30 40  黑色 31 41 ...

  8. LinkedList的实现原理

    转载:http://wiki.jikexueyuan.com/project/java-collection/linkedlist.html 概述 LinkedList 和 ArrayList 一样, ...

  9. eclipse出现每次修改代码报heap over错误,然后必须重启tomcat问题,修改过程

    首先我在eclipse安装目录下找到eclipse.ini文件 修改了里边的参数 C:/Program Files/Java/jdk1.6.0_39/bin/javaw.exe--launcher.a ...

  10. Radar之字节流加载图片

    获取GUITexture GameObject _obj = GameObject.Find("Tex1"); GUITexture _tex = _obj.GetComponen ...