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

最新文章

  1. jq变态全选vs原生变态全选
  2. iOS 删除已经配置的类库和移除CocoaPods
  3. 【linux】/etc/passwd文件
  4. Java 性能要点:自动装箱/ 拆箱 (Autoboxing / Unboxing)
  5. Codevs 2837 考前复习
  6. javascript获取随机颜色
  7. Scala学习笔记(二)表达式和函数
  8. 学习OpenSeadragon之一(一个显示多层图片的开源JS库)
  9. 于Heroku平台部署maven webapp(java web)工程
  10. Winform系列
  11. 由linux命令谈学习操作系统的重要性
  12. cnetos7设置中文显示及中文输入法
  13. 博弈论初步(SG函数)
  14. jedis连接池参数minEvictableIdleTimeMillis和softMinEvictableIdleTimeMillis探索
  15. C# 邮箱的使用
  16. java中常量文件的配置与读取
  17. 第三章 Web页面建设
  18. shell脚本中出现图形化界面
  19. OpenCV——反向投影(定位模板图像在输入图像中的位置)
  20. CentOS图形界面下如何安装Eclipse和使用maven

热门文章

  1. Window驱动开发
  2. java中方法的参数传递机制(值传递还是引用传递)
  3. 在lua的string库和正则表达式
  4. 关于Java中的GUI事件处理
  5. Unity Shader中自定义枚举类型
  6. Axure一点
  7. python学习笔记五 模块下(基础篇)
  8. zookeeper系列之十一—zookeeper会话超时
  9. MSComm函数说明(来自网络)
  10. visual studio运行时库MT、MTd、MD、MDd的研究(转载)