Tomcat服务器接收Android客户端传输文件代码

来源:互联网 发布:淘宝千里眼好用不 编辑:程序博客网 时间:2024/06/03 19:54
</pre><pre name="code" class="java">package com.zhangstar.UploadFileServlet;import java.io.*;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.tomcat.util.http.fileupload.FileItem;import org.apache.tomcat.util.http.fileupload.FileUploadException;import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;import org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext;/** * Servlet implementation class UploadFileServlet */@WebServlet("/UploadFileServlet")public class UploadFileServlet extends HttpServlet {private static final long serialVersionUID = 1L;/** * @see javax.servlet.http.HttpServlet#javax.servlet.http.HttpServlet() */public UploadFileServlet() {super();// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();// 创建文件项目工厂对象DiskFileItemFactory factory = new DiskFileItemFactory();// 设置文件上传路径FFile file =new File("D:\\新建文件夹");//String upload = this.getServletContext().getRealPath("/upload");String upload=file.getPath();// 获取系统默认的临时文件保存路径,该路径为Tomcat根目录下的temp文件夹String temp = System.getProperty("java.io.tmpdir");// 设置缓冲区大小为 5Mfactory.setSizeThreshold(1024 * 1024 * 5);// 设置临时文件夹为tempfactory.setRepository(new File(temp));// 用工厂实例化上传组件,ServletFileUpload 用来解析文件上传请求ServletFileUpload servletFileUpload = new ServletFileUpload(factory);// 解析结果放在List中try {List<FileItem> list = servletFileUpload.parseRequest(new ServletRequestContext(request));for (FileItem item : list) {String name = item.getFieldName();InputStream is = item.getInputStream();if (name.contains("content")) {System.out.println(inputStream2String(is));} else if (name.contains("file")) {try {inputStream2File(is, upload + "\\" + item.getName());} catch (Exception e) {e.printStackTrace();}}}out.write("success");} catch (FileUploadException e) {e.printStackTrace();out.write("failure");}out.flush();out.close();}// 流转化成字符串public static String inputStream2String(InputStream is) throws IOException {ByteArrayOutputStream baos = new ByteArrayOutputStream();int i = -1;while ((i = is.read()) != -1) {baos.write(i);}return baos.toString();}// 流转化成文件public static void inputStream2File(InputStream is, String savePath) throws Exception {System.out.println("文件保存路径为:" + savePath);File file = new File(savePath);InputStream inputSteam = is;BufferedInputStream fis = new BufferedInputStream(inputSteam);FileOutputStream fos = new FileOutputStream(file);int f;while ((f = fis.read()) != -1) {fos.write(f);}fos.flush();fos.close();fis.close();inputSteam.close();}}

0 0