<JAVA EE>文件上传
来源:互联网 发布:mac上好用的软件 知乎 编辑:程序博客网 时间:2024/05/02 13:58
实现文件上传功能
在此处使用了4个jar包,jdk版本是1.7
commons-fileupload-1.3.2.jar 下载链接
commons-io-2.5.jar下载链接
jsp-api.jar
servlet-api.jar
后面两个jar包在tomcat的lib目录下能找到
import java.io.File;import java.io.FileOutputStream;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 java.io.IOException;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;/** * Created by leo01 on 17-1-20. */public class getFileServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取文件保存路径 此处保存在/WEB-INF/upload/中 String savaPath = this.getServletContext().getRealPath("/WEB-INF/upload/"); File file = new File(savaPath); //判断目录是否存在 if(!file.exists() && !file.isDirectory()) { System.out.println(savaPath+"the File Path doesn't exists!\nCreating..."); file.mkdir(); System.out.println("succeed!"); } String msg = ""; try { //上传文件 //1.创建DiskFileItemFactory对象 DiskFileItemFactory factory = new DiskFileItemFactory(); //2.创建ServletFileUpload对象并使用utf-8编码解决中文乱码问题 ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); //3.从表格中获取文件,确保form的enctype="multipart/form-data" if(!ServletFileUpload.isMultipartContent(request)) { return; } //4.使用ServletFileUpload解码并返回FileItem 的 List List<FileItem> list = upload.parseRequest(request); for(FileItem item:list) { //4.1判断post的格式是文件还是formitems if(item.isFormField()) { //如果为formitems获取name:value对 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; } //获取文件名字 File.separator保存了当前操作系统的分隔符 filename = filename.substring(filename.lastIndexOf(File.separator)+1); InputStream in = item.getInputStream(); FileOutputStream out = new FileOutputStream(savaPath + File.separator + 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(); msg = "file upload succeed"; } } //TODO: to anaylize the file just got (using POI) } catch (Exception e) { msg = "file upload fail"; e.printStackTrace(); } //跳转到另一个网页 request.setAttribute("message",msg); request.getRequestDispatcher("/webpage/message.jsp").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); }}
0 0
- Java EE文件上传
- JAVA EE-文件上传
- <JAVA EE>文件上传
- java ee简单文件上传
- Java EE - Spring MVC 文件上传
- JAVA EE项目常用之 struts1.2 文件上传的两种方法
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【控制文件上传和下载】
- java EE中读取properties文件
- Java EE
- java EE
- Java EE
- Java EE
- java-ee
- java ee
- java EE
- Java EE
- Java EE
- JAVA EE
- girdview点击item变色
- 2016IQA论文浏览(1)
- Android中获取系统通讯录联系人并显示在EditText
- hdu1062-Text Reverse
- iOS如何获取app的资源包
- <JAVA EE>文件上传
- GOF设计模式-抽象工厂
- swfit3.0 根据字符串长度,和字号大小计算长度或宽度
- 变脸式应用 / 分页列表框架(二)
- 主题模型-LDA浅析
- CentOS7安装Discuz3.3(填坑)
- java 操作windows 共享目录方法介绍
- centos一键安装L2TP-VPN
- ZCMU—1870