-----------------------------jsp页面-------------------------------------------------------------- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 上传文件
参数:
上传文件:
另选文件:
再选文件:
-----------------------------后台serverlet-------------------------------------------------------------- package com.cheletong.servlet; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Random; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import net.sf.json.JSONObject; 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; /** * Servlet implementation class MaterialManage */ @WebServlet("/FileUpload") public class FileUpload extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * @throws IOException * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { JSONObject resultJson = new JSONObject(); JSONArray paths = new JSONArray(); Random ran = new Random(); int respCode = -1; try { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String uploadPath = getServletContext().getRealPath("/upload"); System.out.println(uploadPath); String tempPath = uploadPath + "\\temp"; String today = new SimpleDateFormat("yyyyMMdd").format(new Date()); String todayPath = uploadPath + "\\" + today; if (uploadPath == null) { return; } File uploadDir = new File(uploadPath); File tempDir = new File(tempPath); File todayDir = new File(todayPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } if (!tempDir.exists()) { tempDir.mkdir(); } if (!todayDir.exists()) { todayDir.mkdir(); } if (!ServletFileUpload.isMultipartContent(request)) { return; } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(tempDir); factory.setSizeThreshold(1024 * 1024 * 1); ServletFileUpload sfu = new ServletFileUpload(factory); sfu.setHeaderEncoding("utf-8"); List fileItems = null; try { fileItems = sfu.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); return; } int i; for (i = 0; i < fileItems.size(); i++) { FileItem item = fileItems.get(i); if (!item.isFormField()) { String itemFullName = item.getName(); if (itemFullName.length() > 0) { String fileExtension = itemFullName .substring(itemFullName.lastIndexOf(".")); String fileNewName = new SimpleDateFormat( "yyyyMMdd_HHmmss").format(new Date()) + "_" + Math.abs(ran.nextInt()) + fileExtension; File file = new File(todayPath, fileNewName); try { item.write(file); String name = "/upload/" + today + "/" + file.getName(); JSONObject path = new JSONObject(); path.put("Path", name); paths.add(path); } catch (Exception e) { e.printStackTrace(); } } } } if(i == fileItems.size()) { respCode = 0; } } catch (Exception e) { e.printStackTrace(); } finally { PrintWriter pw = response.getWriter(); resultJson.put("response", respCode); resultJson.put("data", paths); pw.write(resultJson.toString()); pw.flush(); pw.close(); } } /** * @throws IOException * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { doPost(request, response); } }