导包 commons-fileupload-1.3.1.jar commons-io-2.2.jar


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List; import javax.servlet.ServletException;
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; public class UploadHandleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String savePath=this.getServletContext().getRealPath("/WEB-INF/upload/");
File file=new File(savePath);
if(!file.exists()&&!file.isDirectory()){
System.out.println(savePath+"目录不存在,需要创建"); //创建目录
file.mkdirs();
} //消息提示
String message=""; //创建DiskFileItemFactory工厂
DiskFileItemFactory factory=new DiskFileItemFactory();
//创建一个文件上传解析器
ServletFileUpload upload=new ServletFileUpload(factory);
//解决文件上传乱码问题
upload.setHeaderEncoding("UTF-8"); if(!ServletFileUpload.isMultipartContent(request)){
//按照传统方面获取数据
return;
} try {
//使用ServletFileUpload解析器解析数据,返回来的是一个List<FileItem>集合,每一个FileItem对应一个表单输出
List<FileItem> list=upload.parseRequest(request); for (FileItem item : list) { if(item.isFormField()){
String name=item.getFieldName();
String value=item.getString("UTF-8");
System.out.println(name+"="+value);
}else{
String filename=item.getName();
System.out.println(filename);
if(filename==null||filename.trim().equals("")){
continue;
}
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename=filename.substring(filename.lastIndexOf("\\")+1);
//获取item文件上传输入流
InputStream in=item.getInputStream(); //创建一个文件输出流
FileOutputStream out=new FileOutputStream(savePath+"\\"+filename); byte[] buffer=new byte[1024]; int len=0; while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
in.close();
out.close();
item.delete(); message="文件上传成功";
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} request.setAttribute("message", message);
request.getRequestDispatcher("/message.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

                                            jsp页面

    

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>文件上传</title>
</head> <body>
<form action="${pageContext.request.contextPath}/UploadHandleServlet" enctype="multipart/form-data" method="post">
上传用户:<input type="text" name="username"><br/>
上传文件1:<input type="file" name="file1"><br/> <input type="submit" value="提交">
</form> </body> </html>

 

<%@ 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>成功页面</title>
</head>
<body>
${message}
</body>
</html>

                                                      

  

文件上传之Servlet的更多相关文章

  1. 文件上传(Servlet/Struts2/SpringMVC)

    文件下载(Servlet/Struts2)的链接:http://www.cnblogs.com/ghq120/p/8328093.html 文件上传 Servlet实现 要实现文件上传的功能,必须在f ...

  2. SpringMVC常用配置-文件上传-基于Servlet 3.0

    [2] http://www.cnblogs.com/weilu2/p/springmvc_MultipartConfigElement_tomcat_webapps_work.html

  3. 文件上传对servlet的要求

    request.getParamter(String name)方法不能再使用了 需要使用request.getInputStream()获取输入流对象然后在进行读取数据 解析数据 ServletIn ...

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

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

  5. Servlet 文件上传

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

  6. servlet实现文件上传,预览,下载和删除

      一.准备工作 1.1 文件上传插件:uploadify: 1.2 文件上传所需jar包:commons-fileupload-1.3.1.jar和commons-io-2.2.jar 1.3 将数 ...

  7. Servlet实现文件上传和下载

    对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具commo ...

  8. Servlet文件上传下载

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

  9. (转载)JavaWeb学习总结(五十)——文件上传和下载

    源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...

随机推荐

  1. wcf json参数返回失败问题

    问题: 最近写了一个接口,提示连接失败,于是在本地发布了一下,然后模拟post请求进行本地调试,发现能正常进入接口,中间也没问题,一直走到最后一步return时,也能return,但是就是返回不了数据 ...

  2. canvas-3radialGradient.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 浏览器兼容性问题——IE不支持却很实用的CSS属性Outline和Child

    1. Outline(适用范围:鼠标悬浮hover加外边框) 我们在布局的时候,常常会因为添加边框border影响宽高的布局. 那么,outline是完美的替代品,因为它可以在不影响文档流的情况下呈现 ...

  4. svn和ftp的不同应用场合

    作者:朱金灿 来源:http://blog.csdn.net/clever101 本来二者不是同一类的东西,是不能比较.引发我思考的是部门一些同事错把svn工具作为一个文件共享工具.因此我在思考一个问 ...

  5. 让 Odoo POS 支持廉价小票打印机

    为了测试 Odoo 在实际业务中的实施,我们开了一家(马上要开第二家分店)猪肉店.由于预算有限,在实施 Odoo PoS 的时候采购了一台价格为 85 元的爱宝热敏打印机,结果连上 Odoo Posb ...

  6. http-server服务跨域设置

    http-server --cors -p 9999 ------------------------------------------------------------------------- ...

  7. 《Inside C#》笔记(十二) 委托与事件

    C#的委托与C++的函数指针类似,但委托是类型安全的,意味着指针始终会指向有效的函数.委托的使用主要有两种:回调和事件. 一 将委托作为回调函数 在需要给一个函数传递一个函数指针,随后通过函数指针调用 ...

  8. 《Inside C#》笔记(三) 数据类型

    数据类型系统是一门编程语言的核心..NET系列的语言使用统一的数据类型系统CTS(Common Type System).所有的数据类型都继承自System.Object. 一 值类型和引用类型 a) ...

  9. Servlet (HttpServletResponse)对象

    1.setStatus(int status)方法:用于设置HTTP响应消息的状态码,并生成响应状态行.响应状态行中的状态描述信息直接与状态码相关,HTTP版本由服务器确定,因此只需要通过这个方法设置 ...

  10. Matplotlib:可视化颜色命名分类和映射颜色分类

    Matplotlib中支持的所有颜色分类 映射颜色分类